SharePoint 2010 技巧系列: 控制Ribbon菜单权限(SiteActions的例子)
2011-05-23 14:21
411 查看
上一篇写了一个关于快速开发Ribbon菜单的例子,这次我们共同探讨一下Ribbon菜单权限的控制.如果你已经阅读了“”,我相信你已经能很快的开发一个Ribbon菜单,这时我们就需要去关注Ribbon菜单其它更深的东西,比如给Ribbon添加链接,Ribbon脚本,Ribbon权限控制等等.
当我们创建一个默认的SharePoint站点的时候,我们通过SiteActions–>SitePermission(站点权限)–>PermissionLevel,我们可以看到SharePoint默认的几个权限级别:FullControl,Design,Contribute,Read,LimitedAccess,ViewOnly,当然你能看到这些权限的级别还跟创建站点时选择的模板有关,这里的重点不是权限级别,而且更底层的权限分类.直接点击上面任何一个权限级别,以Contribute为例,你能看到SharePoint基本的权限类型.
我们可以看下SharePointSDKSPBasePermission与上图对应的权限类型.
了解以上内容后,我们就能快速开发出带有权限控制的菜单了.
1.创建一个空的SharePoint2010项目,项目名:SiteActionsMenu
2.右键点击Feature–>addFeatures,添加一个新Feature,更改名称和描述.
当我们创建一个默认的SharePoint站点的时候,我们通过SiteActions–>SitePermission(站点权限)–>PermissionLevel,我们可以看到SharePoint默认的几个权限级别:FullControl,Design,Contribute,Read,LimitedAccess,ViewOnly,当然你能看到这些权限的级别还跟创建站点时选择的模板有关,这里的重点不是权限级别,而且更底层的权限分类.直接点击上面任何一个权限级别,以Contribute为例,你能看到SharePoint基本的权限类型.
我们可以看下SharePointSDKSPBasePermission与上图对应的权限类型.
#regionAssemblyMicrosoft.SharePoint.dll,v2.0.50727 //C:\ProgramFiles\CommonFiles\MicrosoftShared\WebServerExtensions\14\ISAPI\Microsoft.SharePoint.dll #endregion usingSystem; namespaceMicrosoft.SharePoint { //Summary: //Specifiesthebuilt-inpermissionsavailableinWindowsSharePointServices. [Flags] publicenumSPBasePermissions { //Summary: //HasnopermissionsontheWebsite.Notavailablethroughtheuserinterface. EmptyMask=0, // //Summary: //Viewitemsinlists,documentsindocumentlibraries,andviewWebdiscussion //comments. ViewListItems=1, // //Summary: //Additemstolists,adddocumentstodocumentlibraries,andaddWebdiscussion //comments. AddListItems=2, // //Summary: //Edititemsinlists,editdocumentsindocumentlibraries,editWebdiscussion //commentsindocuments,andcustomizeWebPartPagesindocumentlibraries. EditListItems=4, // //Summary: //Deleteitemsfromalist,documentsfromadocumentlibrary,andWebdiscussion //commentsindocuments. DeleteListItems=8, // //Summary: //Approveaminorversionofalistitemordocument. ApproveItems=16, // //Summary: //Viewthesourceofdocumentswithserver-sidefilehandlers. OpenItems=32, // //Summary: //Viewpastversionsofalistitemordocument. ViewVersions=64, // //Summary: //Deletepastversionsofalistitemordocument. DeleteVersions=128, // //Summary: //Discardorcheckinadocumentwhichischeckedouttoanotheruser. CancelCheckout=256, // //Summary: //Create,change,anddeletepersonalviewsoflists. ManagePersonalViews=512, // //Summary: //Createanddeletelists,addorremovecolumnsinalist,andaddorremove //publicviewsofalist. ManageLists=2048, // //Summary: //Viewforms,views,andapplicationpages,andenumeratelists. ViewFormPages=4096, // //Summary: //AllowuserstoopenaWebsite,list,orfoldertoaccessitemsinsidethat //container. Open=65536, // //Summary: //ViewpagesinaWebsite. ViewPages=131072, // //Summary: //Add,change,ordeleteHTMLpagesorWebPartPages,andedittheWebsite //usingaWindowsSharePointServices–compatibleeditor. AddAndCustomizePages=262144, // //Summary: //ApplyathemeorborderstotheentireWebsite. ApplyThemeAndBorder=524288, // //Summary: //Applyastylesheet(.cssfile)totheWebsite. ApplyStyleSheets=1048576, // //Summary: //ViewreportsonWebsiteusage. ViewUsageData=2097152, // //Summary: //CreateaWebsiteusingSelf-ServiceSiteCreation. CreateSSCSite=4194304, // //Summary: //Createsubsitessuchasteamsites,MeetingWorkspacesites,andDocument //Workspacesites. ManageSubwebs=8388608, // //Summary: //Createagroupofusersthatcanbeusedanywherewithinthesitecollection. CreateGroups=16777216, // //Summary: //CreateandchangepermissionlevelsontheWebsiteandassignpermissions //tousersandgroups. ManagePermissions=33554432, // //Summary: //EnumeratefilesandfoldersinaWebsiteusingMicrosoftOfficeSharePoint //Designer2007andWebDAVinterfaces. BrowseDirectories=67108864, // //Summary: //ViewinformationaboutusersoftheWebsite. BrowseUserInfo=134217728, // //Summary: //AddorremovepersonalWebPartsonaWebPartPage. AddDelPrivateWebParts=268435456, // //Summary: //UpdateWebPartstodisplaypersonalizedinformation. UpdatePersonalWebParts=536870912, // //Summary: //GranttheabilitytoperformalladministrationtasksfortheWebsiteas //wellasmanagecontent.Activate,deactivate,oreditpropertiesofWebsite //scopedFeaturesthroughtheobjectmodelorthroughtheuserinterface(UI). //WhengrantedontherootWebsiteofasitecollection,activate,deactivate, //oreditpropertiesofsitecollectionscopedFeaturesthroughtheobject //model.TobrowsetotheSiteCollectionFeaturespageandactivateordeactivate //sitecollectionscopedFeaturesthroughtheUI,youmustbeasitecollection //administrator. ManageWeb=1073741824, // //Summary: //Usefeaturesthatlaunchclientapplications;otherwise,usersmustwork //ondocumentslocallyanduploadchanges. UseClientIntegration=68719476736, // //Summary: //UseSOAP,WebDAV,orMicrosoftOfficeSharePointDesigner2007interfaces //toaccesstheWebsite. UseRemoteAPIs=137438953472, // //Summary: //ManagealertsforallusersoftheWebsite. ManageAlerts=274877906944, // //Summary: //Createe-mailalerts. CreateAlerts=549755813888, // //Summary: //Allowsausertochangehisorheruserinformation,suchasaddingapicture. EditMyUserInfo=1099511627776, // //Summary: //EnumeratepermissionsontheWebsite,list,folder,document,orlistitem. EnumeratePermissions=4611686018427387904, // //Summary: //HasallpermissionsontheWebsite.Notavailablethroughtheuserinterface. FullMask=9223372036854775807, } }
了解以上内容后,我们就能快速开发出带有权限控制的菜单了.
1.创建一个空的SharePoint2010项目,项目名:SiteActionsMenu
2.右键点击Feature–>addFeatures,添加一个新Feature,更改名称和描述.
3.右键点击项,添加一个Module,打开Elements.xml添加以下代码:
<?xmlversion="1.0"encoding="utf-8"?> <Elementsxmlns="http://schemas.microsoft.com/sharepoint/"> <CustomAction Id="viewSiteManager" GroupId="SiteActions" Location="Microsoft.SharePoint.StandardMenu" Sequence="1000" Title="OwnerMenu"Description="controlmenuwithuserpermission" ImageUrl="colleagues_16.png" Rights="ManagePermissions"> <UrlActionUrl="~site/_layouts/sitemanager.aspx"/> </CustomAction> </Elements>
4.代码中的红色部分是比较重要的属性,GroupId和Location请参阅SDK,这里重点关注Rights,Rights属性的值,就是我们上面的SPbasePermission
的枚举值,可以用逗号隔开,比如Rights=“ViewListItems,ManagePermissions”.
5,部署运行查看效果.
6.
相关文章推荐
- SharePoint 2010 技巧系列: 控制Ribbon菜单权限(SiteActions的例子)
- Sharepoint 2010 根据用户权限隐藏Ribbon菜单
- sharepoint 2010 如何根据权限控制Ribbon区域功能按钮的显示
- SharePoint【Ribbon系列】-- Sharepoint 2010 根据用户权限隐藏Ribbon菜单
- Sharepoint 2010 根据用户权限隐藏Ribbon菜单(利用css)
- Sharepoint 2010 根据用户权限隐藏Ribbon菜单(利用css)
- Sharepoint 2010 根据用户权限隐藏Ribbon菜单(利用css)
- Sharepoint 2010 根据用户权限隐藏Ribbon菜单
- Sharepoint 2010 根据用户权限隐藏Ribbon菜单
- sharepoint 2010 扩展调查字段属性(6)-增加图片支持-多选-根据权限控制是否允许用户多次评选
- SharePoint 2010 如何找到Ribbon菜单中命令项的ID
- SharePoint 2010设计(Design)权限能操作的网站操作菜单项
- SharePoint 2010 如何找到Ribbon菜单中命令项的ID
- SharePoint 2010 UI 定制化系列之定制Ribbon: Server Ribbon 架构的探讨和理解
- SharePoint 2010 技巧系列 - 启用文档库接收邮件功能
- SharePoint 2010 技巧系列 - 启用文档库接收邮件功能
- SharePoint 2010 UI 定制化系列之定制Ribbon UI操作: 如何使用SharePoint Designer 2010定制Ribbon UI操作
- sharepoint 2010如何隐藏.添加.禁用.Ribbon菜单中的项,多个方法
- SharePoint 2010 移除Ribbon菜单中的命令项
- SharePoint【用户访问控制】-- 02. SharePoint 2010 用户组、权限级别、权限