目录

简介

开始使用前

要求

使用的组件

规则

修改Manage_MyServers Portlet代码

使用文本编辑器

禁用VSO角色的快照按钮

相关信息

简介

要成功禁用虚拟服务器所有者(VSO)组成员的快照管理，您不能简单地从VSO角色中删除相应的权限。虽然VSO用户将无法访问这些功能，但“我的服务器”Portlet仍将显示相应的按钮，如果VSO用户点击这些按钮，将显示错误。为防止出现此情况，请对Manage_MyServers Portlet代码执行一些简单修改，使其不显示这些按钮。

开始使用前

要求

本文档没有任何特定的要求。

使用的组件

本文档不限于特定硬件和软件版本。

规则

有关文档约定的详细信息，请参阅Cisco技术提示约定。

修改Manage_MyServers Portlet代码

在本节中，您将看到修改Manage_MyServers Portlet所需的信息，以便不应具有此访问权限的VSO用户删除快照按钮。

使用文本编辑器

只要Portlet Javascript代码支持复制和粘贴并保存到文件，您就可以使用任何ASCII文本编辑器来编辑它。我们建议您使用支持屏幕线编号和搜索功能的。请记住，在修改原始代码之前，请将其保存在本地文本文件中，以便在需要时可以轻松恢复。

禁用VSO角色的快照按钮

代码修改相对简单。首先检测用户的角色，如果用户是VSO组的成员，则禁用管理快照按钮。执行下列步骤：

1. 启动云门户并导航至门户设计器>浏览Portlet。

2. 在左面板中，选择JavaScript文件夹，然后选择Manage_MyServers。

3. 在主面板中，选择“查看”选项卡。云门户显示Manage_MyServersPortlet的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