您的位置:首页 > 其它

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与上图对应的权限类型.

#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.实例下载
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐
章节导航