目錄

簡介

開始之前

需求

採用元件

慣例

修改Manage_MyServers Portlet代碼

使用文本編輯器

為VSO角色禁用快照按鈕

相關資訊

簡介

要成功禁用虛擬伺服器所有者(VSO)組成員的快照管理，不能簡單地從VSO角色中刪除相應的許可權。雖然VSO使用者無法訪問這些功能，但「我的伺服器」Portlet仍將顯示相應的按鈕，並且如果任何VSO使用者按一下這些按鈕，則會顯示錯誤。為防止出現這種情況，請對Manage_MyServers portlet代碼執行一些簡單修改，以使其不顯示這些按鈕。

開始之前

需求

本文件沒有特定需求。

採用元件

本檔案所述內容不限於特定硬體和軟體版本。

慣例

如需檔案慣例的詳細資訊，請參閱思科技術提示慣例。

修改Manage_MyServers Portlet代碼

本節提供修改Manage_MyServers Portlet所需的資訊，以便為不應具有此訪問許可權的VSO使用者刪除「快照」按鈕。

使用文本編輯器

您可以使用任何ASCII文本編輯器編輯portlet Javascript代碼，只要它支援複製、貼上和儲存到檔案即可。我們建議您使用支援螢幕行編號和搜尋功能的。請記得在修改原始代碼之前將其儲存在本地文本檔案中，以便在需要時可以輕鬆對其進行恢復。

為VSO角色禁用快照按鈕

代碼修改相對簡單。首先檢測使用者的角色，然後如果使用者是VSO組的成員，則禁用「管理快照」按鈕。請遵循以下步驟：

1. 啟動雲門戶並導航到門戶設計器>瀏覽Portlet。

2. 在左側面板中，選擇JavaScript文件夾，然後選擇Manage_MyServers。

3. 在主面板中，選擇View頁籤。雲門戶顯示Manage_MyServers portlet的Javascript代碼。

4. 選擇所有代碼，然後將其複製並貼上到文本編輯器中。將此原始文本的副本另存為本地電腦上的檔案，作為備份。

getActionButtonContent(cntName,cntStatus,cntOwned)

5. 在該行的末尾新增一個左括弧({)。然後立即新增含有以下代碼的行：

var personRole = getCurrentUserRole();

這兩行現在應如下所示：

function getActionButtonContent(cntName,cntStatus,cntOwned){

var personRole = getCurrentUserRole();

6. 找到代碼的以下部分（大約第1104行）：

buttons = buttons + '<div style="float:left; margin: 8px 9px; padding: 8px 2px; text-align: center; width: 10%; border: 1px solid #ffffff;">'+linkSnapshotStart+'<img src="http://www.cisco.com/RequestCenter/custom/EnterpriseEdition/'+imgSnapshot+'" '+imgSnapshotRollover+' alt="Create a named snapshot of the '+manageCntName+'\'s current state and data.">'+linkSnapshotEnd+'</Para><Para>Take Snapshot</div>';

7. 在代碼此部分之前的行上，新增以下行：

if(personRole !=  'Virtual Server Owner') {

不要忘記在行尾插入左括弧字元({)。

8. 現在找到以下附近的代碼部分（在1112行附近）：

buttons = buttons + '<div style="float:left; margin: 8px 9px; padding: 8px 2px; text-align: center; width: 10%; border: 1px solid #ffffff;">'+linkDeleteSnapshotStart+'<img src="http://www.cisco.com/RequestCenter/custom/EnterpriseEdition/'+imgDeleteSnapshot+'" '+imgDeleteSnapshotRollover+' alt="Delete Snapshot of the Virtual Machine" title="Delete Snapshot of the '+manageCntName+'." >'+linkDeleteSnapshotEnd+'</Para><Para>Delete Snapshot</div>';

9. 在此節後面緊跟的新行上為if語句新增右括弧(})。修改後代碼的完整部分現在應如下所示：

if(personRole != Virtual Server Owner) {

buttons = buttons + '<div style="float:left; margin: 8px 9px; padding: 8px 2px; text-align: center; width: 10%; border: 1px solid #ffffff;">'+linkSnapshotStart+'<img src="http://www.cisco.com/RequestCenter/custom/EnterpriseEdition/'+imgSnapshot+'" '+imgSnapshotRollover+' alt="Create a named snapshot of the '+manageCntName+'\'s current state and data.">'+linkSnapshotEnd+'</Para><Para>Take Snapshot</div>';

buttons = buttons + '<div style="float:left; margin: 8px 9px; padding: 8px 2px; text-align: center; width: 10%; border: 1px solid #ffffff;">'+linkViewSnapshotStart+'<img src="http://www.cisco.com/RequestCenter/custom/EnterpriseEdition/'+imgViewSnapshot+'" '+imgViewSnapshotRollover+' alt="View Snapshots of the Virtual Machine" title="View Snapshots of the '+manageCntName+'." >'+linkViewSnapshotEnd+'</Para><Para>View Snapshots</div>';

buttons = buttons + '<div style="float:left; margin: 8px 9px; padding: 8px 2px; text-align: center; width: 10%; border: 1px solid #ffffff;">'+linkRevertSnapshotStart+'<img src="http://www.cisco.com/RequestCenter/custom/EnterpriseEdition/'+imgRevertSnapshot+'"  '+imgRevertSnapshotRollover+' alt="Revert to Snapshot" title="Revert a '+manageCntName+' to a previous state using the snapshot of your choice." >'+linkRevertSnapshotEnd+'</Para><Para>Revert to Snapshot</div>';

buttons = buttons + '<div style="float:left; margin: 8px 9px; padding: 8px 2px; text-align: center; width: 10%; border: 1px solid #ffffff;">'+linkDeleteSnapshotStart+'<img src="http://www.cisco.com/RequestCenter/custom/EnterpriseEdition/'+imgDeleteSnapshot+'" '+imgDeleteSnapshotRollover+' alt="Delete Snapshot of the Virtual Machine" title="Delete Snapshot of the '+manageCntName+'." >'+linkDeleteSnapshotEnd+'</Para><Para>Delete Snapshot</div>';

}

10. 將新修改的代碼複製回Manage_MyServers Portlet的「檢視」頁籤，然後按一下儲存。按鈕現在將隱藏VSO。

相關資訊

- 技術支援與文件 - Cisco Systems