本文介绍的是根据用户权限隐藏整个Ribbon菜单项。
操作环境:Windows Server 2008 r2+ SharePoint 2010
1.关于SharePoint 权限详细请参考:http://msdn.microsoft.com/zh-cn/library/ms412690
默认Sharepoint 以将权限分组:完全控制,设计,参与讨论,读取,首先访问,仅读取 等6组,然后将权限组指定给具体用户。 下面图片是完全控制权限的详细。
http://hi.csdn.net/attachment/201109/19/254870_1316419087H3pb.jpg
当然你也可以创建自己的权限组。但这不是本文重点。
2.利用权限隐藏Ribbon菜单,需要用到SPSecurityTrimmedControl 控件,它有个PermissionsString属性用来指定权限只有拥有该权限的用户,它里面的代码才会执行。
下面就详细介绍具体操作:
1.用SPD 2010打开需要隐藏Ribbon菜单的站点,并打开正使用的母版页,默认是v4.master
2.右击该母版页,选择在高级模式下编辑文件,找到下面的代码(修改前注意备份v4.master,以免造成不可挽回的灾难):
<div id="s4-ribbonrow" class="s4-pr s4-ribbonrowhidetitle">
将其改成:
<div id="s4-ribbonrow" class="s4-pr s4-ribbonrowhidetitle" style="display:none">
3.在我们上的找到的div标签的结束标签的后面,添加如下代码:
<Sharepoint:SPSecurityTrimmedControl ID="SPSecurityTrimmedControl2" runat="server" PermissionsString="AddAndCustomizePages">
<script type="text/javascript">
document.getElementById("s4-ribbonrow").style.display = "block";
</script>
</Sharepoint:SPSecurityTrimmedControl>
4.保存并发布母版页
这样只有具有AddAndCustomizePages权限的用户访问,才会出现Ribbon菜单。
附所有PermissionString:
List Permissions
ManageLists
CancelCheckout
AddListItems
EditListItems
DeleteListItems
ViewListItems
ApproveItems
OpenItems
ViewVersions
DeleteVersions
CreateAlerts
ViewFormPages
Site Permissions
ManagePermissions
ViewUsageData
ManageSubwebs
ManageWeb
AddAndCustomizePages
ApplyThemeAndBorder
ApplyStyleSheets
CreateGroups
BrowseDirectories
CreateSSCSite
ViewPages
EnumeratePermissions
BrowseUserInfo
ManageAlerts
UseRemoteAPIs
UseClientIntegration
Open
EditMyUserInfo
Personal Permissions
ManagePersonalViews
AddDelPrivateWebParts
UpdatePersonalWebParts