zoukankan      html  css  js  c++  java
  • SharePoint 2010 技巧系列: 控制Ribbon菜单权限(SiteActions的例子)

    上一篇写了一个关于快速开发Ribbon菜单的例子,这次我们共同探讨一下Ribbon菜单权限的控制. 如果你已经阅读了 “”, 我相信你已经能很快的开发一个Ribbon菜单,这时我们就需要去关注Ribbon菜单其它更深的东西,比如给Ribbon添加链接,Ribbon脚本,Ribbon权限控制等等.

    当我们创建一个默认的SharePoint站点的时候,我们通过Site Actions –> Site Permission (站点权限) –> PermissionLevel, 我们可以看到SharePoint默认的几个权限级别: Full Control, Design, Contribute, Read,  Limited Access, View Only, 当然你能看到这些权限的级别还跟创建站点时选择的模板有关, 这里的重点不是权限级别, 而且更底层的权限分类. 直接点击上面任何一个权限级别, 以Contribute 为例, 你能看到SharePoint 基本的权限类型.

    我们可以看下SharePoint SDK SPBasePermission与上图对应的权限类型.

    #region Assembly Microsoft.SharePoint.dll, v2.0.50727
    // C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\ISAPI\Microsoft.SharePoint.dll
    #endregion
    
    using System;
    
    namespace Microsoft.SharePoint
    {
        // Summary:
        //     Specifies the built-in permissions available in Windows SharePoint Services.
        [Flags]
        public enum SPBasePermissions
        {
            // Summary:
            //     Has no permissions on the Web site. Not available through the user interface.
            EmptyMask = 0,
            //
            // Summary:
            //     View items in lists, documents in document libraries, and view Web discussion
            //     comments.
            ViewListItems = 1,
            //
            // Summary:
            //     Add items to lists, add documents to document libraries, and add Web discussion
            //     comments.
            AddListItems = 2,
            //
            // Summary:
            //     Edit items in lists, edit documents in document libraries, edit Web discussion
            //     comments in documents, and customize Web Part Pages in document libraries.
            EditListItems = 4,
            //
            // Summary:
            //     Delete items from a list, documents from a document library, and Web discussion
            //     comments in documents.
            DeleteListItems = 8,
            //
            // Summary:
            //     Approve a minor version of a list item or document.
            ApproveItems = 16,
            //
            // Summary:
            //     View the source of documents with server-side file handlers.
            OpenItems = 32,
            //
            // Summary:
            //     View past versions of a list item or document.
            ViewVersions = 64,
            //
            // Summary:
            //     Delete past versions of a list item or document.
            DeleteVersions = 128,
            //
            // Summary:
            //     Discard or check in a document which is checked out to another user.
            CancelCheckout = 256,
            //
            // Summary:
            //     Create, change, and delete personal views of lists.
            ManagePersonalViews = 512,
            //
            // Summary:
            //     Create and delete lists, add or remove columns in a list, and add or remove
            //     public views of a list.
            ManageLists = 2048,
            //
            // Summary:
            //     View forms, views, and application pages, and enumerate lists.
            ViewFormPages = 4096,
            //
            // Summary:
            //     Allow users to open a Web site, list, or folder to access items inside that
            //     container.
            Open = 65536,
            //
            // Summary:
            //     View pages in a Web site.
            ViewPages = 131072,
            //
            // Summary:
            //     Add, change, or delete HTML pages or Web Part Pages, and edit the Web site
            //     using a Windows SharePoint Services–compatible editor.
            AddAndCustomizePages = 262144,
            //
            // Summary:
            //     Apply a theme or borders to the entire Web site.
            ApplyThemeAndBorder = 524288,
            //
            // Summary:
            //     Apply a style sheet (.css file) to the Web site.
            ApplyStyleSheets = 1048576,
            //
            // Summary:
            //     View reports on Web site usage.
            ViewUsageData = 2097152,
            //
            // Summary:
            //     Create a Web site using Self-Service Site Creation.
            CreateSSCSite = 4194304,
            //
            // Summary:
            //     Create subsites such as team sites, Meeting Workspace sites, and Document
            //     Workspace sites.
            ManageSubwebs = 8388608,
            //
            // Summary:
            //     Create a group of users that can be used anywhere within the site collection.
            CreateGroups = 16777216,
            //
            // Summary:
            //     Create and change permission levels on the Web site and assign permissions
            //     to users and groups.
            ManagePermissions = 33554432,
            //
            // Summary:
            //     Enumerate files and folders in a Web site using Microsoft Office SharePoint
            //     Designer 2007 and WebDAV interfaces.
            BrowseDirectories = 67108864,
            //
            // Summary:
            //     View information about users of the Web site.
            BrowseUserInfo = 134217728,
            //
            // Summary:
            //     Add or remove personal Web Parts on a Web Part Page.
            AddDelPrivateWebParts = 268435456,
            //
            // Summary:
            //     Update Web Parts to display personalized information.
            UpdatePersonalWebParts = 536870912,
            //
            // Summary:
            //     Grant the ability to perform all administration tasks for the Web site as
            //     well as manage content. Activate, deactivate, or edit properties of Web site
            //     scoped Features through the object model or through the user interface (UI).
            //     When granted on the root Web site of a site collection, activate, deactivate,
            //     or edit properties of site collection scoped Features through the object
            //     model. To browse to the Site Collection Features page and activate or deactivate
            //     site collection scoped Features through the UI, you must be a site collection
            //     administrator.
            ManageWeb = 1073741824,
            //
            // Summary:
            //     Use features that launch client applications; otherwise, users must work
            //     on documents locally and upload changes.
            UseClientIntegration = 68719476736,
            //
            // Summary:
            //     Use SOAP, WebDAV, or Microsoft Office SharePoint Designer 2007 interfaces
            //     to access the Web site.
            UseRemoteAPIs = 137438953472,
            //
            // Summary:
            //     Manage alerts for all users of the Web site.
            ManageAlerts = 274877906944,
            //
            // Summary:
            //     Create e-mail alerts.
            CreateAlerts = 549755813888,
            //
            // Summary:
            //     Allows a user to change his or her user information, such as adding a picture.
            EditMyUserInfo = 1099511627776,
            //
            // Summary:
            //     Enumerate permissions on the Web site, list, folder, document, or list item.
            EnumeratePermissions = 4611686018427387904,
            //
            // Summary:
            //     Has all permissions on the Web site. Not available through the user interface.
            FullMask = 9223372036854775807,
        }
    }
    

    了解以上内容后,我们就能快速开发出带有权限控制的菜单了.

    1. 创建一个空的SharePoint 2010 项目,项目名:SiteActions Menu

    2. 右键点击Feature –> add Features, 添加一个新Feature,更改名称和描述.

    3. 右键点击项,添加一个Module, 打开Elements.xml 添加以下代码:

    <?xml version="1.0" encoding="utf-8"?>
    <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
      <CustomAction
      Id="viewSiteManager"
      GroupId="SiteActions"
      Location="Microsoft.SharePoint.StandardMenu"
      Sequence="1000"
       Title="Owner Menu" Description="control menu with user permission"
      ImageUrl="colleagues_16.png"
       Rights="ManagePermissions">
        <UrlAction Url="~site/_layouts/sitemanager.aspx"/>
      </CustomAction>
    </Elements>
    4. 代码中的红色部分是比较重要的属性,GroupId 和Location请参阅SDK,这里重点关注Rights, Rights属性的值,就是我们上面的SPbasePermission
    的枚举值,可以用逗号隔开,比如 Rights= “ViewListItems,ManagePermissions”.
     
    5, 部署运行查看效果.
  • 相关阅读:
    关于Linux静态库和动态库的分析
    某个表格不知道被哪个Session 锁住了,及如何解锁
    如何降低索引的clustering_factor
    Oracle Logminer 查找日志信息
    使用“alter index ××× monitoring usage;”语句监控索引使用与否(转载secooler) 转
    Oracle提高查询效率的解析
    数据库flash_recovery_area满导致数据库启动报错ORA03113错误
    ora错误代码汇总
    Oracle BBED 工具介绍
    oracle BBED 直接修改数据库block块
  • 原文地址:https://www.cnblogs.com/splover/p/2054305.html
Copyright © 2011-2022 走看看