要成功禁用虚拟服务器所有者(VSO)组成员的快照管理,您不能简单地从VSO角色中删除相应的权限。虽然VSO用户将无法访问这些功能,但“我的服务器”Portlet仍将显示相应的按钮,如果VSO用户点击这些按钮,将显示错误。为防止出现此情况,请对Manage_MyServers Portlet代码执行一些简单修改,使其不显示这些按钮。
本文档没有任何特定的要求。
本文档不限于特定硬件和软件版本。
有关文档约定的详细信息,请参阅Cisco技术提示约定。
在本节中,您将看到修改Manage_MyServers Portlet所需的信息,以便不应具有此访问权限的VSO用户删除快照按钮。
只要Portlet Javascript代码支持复制和粘贴并保存到文件,您就可以使用任何ASCII文本编辑器来编辑它。我们建议您使用支持屏幕线编号和搜索功能的。请记住,在修改原始代码之前,请将其保存在本地文本文件中,以便在需要时可以轻松恢复。
代码修改相对简单。首先检测用户的角色,如果用户是VSO组的成员,则禁用管理快照按钮。执行下列步骤:
启动云门户并导航至门户设计器>浏览Portlet。
在左面板中,选择JavaScript文件夹,然后选择Manage_MyServers。
在主面板中,选择“查看”选项卡。云门户显示Manage_MyServersPortlet的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 |
初始版本 |