要成功禁用虛擬伺服器所有者(VSO)組成員的快照管理,不能簡單地從VSO角色中刪除相應的許可權。雖然VSO使用者無法訪問這些功能,但「我的伺服器」Portlet仍將顯示相應的按鈕,並且如果任何VSO使用者按一下這些按鈕,則會顯示錯誤。為防止出現這種情況,請對Manage_MyServers portlet代碼執行一些簡單修改,以使其不顯示這些按鈕。
本文件沒有特定需求。
本檔案所述內容不限於特定硬體和軟體版本。
如需檔案慣例的詳細資訊,請參閱思科技術提示慣例。
本節提供修改Manage_MyServers Portlet所需的資訊,以便為不應具有此訪問許可權的VSO使用者刪除「快照」按鈕。
您可以使用任何ASCII文本編輯器編輯portlet Javascript代碼,只要它支援複製、貼上和儲存到檔案即可。我們建議您使用支援螢幕行編號和搜尋功能的。請記得在修改原始代碼之前將其儲存在本地文本檔案中,以便在需要時可以輕鬆對其進行恢復。
代碼修改相對簡單。首先檢測使用者的角色,然後如果使用者是VSO組的成員,則禁用「管理快照」按鈕。請遵循以下步驟:
啟動雲門戶並導航到門戶設計器>瀏覽Portlet。
在左側面板中,選擇JavaScript文件夾,然後選擇Manage_MyServers。
在主面板中,選擇View頁籤。雲門戶顯示Manage_MyServers portlet的Javascript代碼。
選擇所有代碼,然後將其複製並貼上到文本編輯器中。將此原始文本的副本另存為本地電腦上的檔案,作為備份。
getActionButtonContent(cntName,cntStatus,cntOwned)
在該行的末尾新增一個左括弧({)。然後立即新增含有以下代碼的行:
var personRole = getCurrentUserRole();
這兩行現在應如下所示:
function getActionButtonContent(cntName,cntStatus,cntOwned){ var personRole = getCurrentUserRole();
找到代碼的以下部分(大約第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>';
在代碼此部分之前的行上,新增以下行:
if(personRole != 'Virtual Server Owner') {
不要忘記在行尾插入左括弧字元({)。
現在找到以下附近的代碼部分(在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>';
在此節後面緊跟的新行上為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>'; }
將新修改的代碼複製回Manage_MyServers Portlet的「檢視」頁籤,然後按一下儲存。按鈕現在將隱藏VSO。
修訂 | 發佈日期 | 意見 |
---|---|---|
1.0 |
10-Jan-2013 |
初始版本 |