• SharePoint SPListItem 权限设置


    namespace Microsoft.SharePoint
    {
        using System;
        using System.Text;
        using System.Collections.Generic;
        using System.Linq;
        using Microsoft.SharePoint;
    
    
        public static class PermissionManager
        {
    
            //SPGroup group = web.Groups[0]; 
            //SPUser user = web.Users[0]; 
            //SPUser user2 = web.EnsureUser("mangaldas.mano"); 
            //SPUser user3 = web.EnsureUser("Domain Users"); 
            //SPPrincipal[] principals = { group, user, user2, user3 }; 
    
            #region Adding Permissions to an item
    
    
            /// <summary>
            /// Set Permissions
            /// </summary>
            /// <param name="item">SPListItem</param>
            /// <param name="user">SPUser</param>
            /// <param name="roleType">SPRoleType</param>
            public static void SetPermissions(SPListItem item, SPUser user, SPRoleType roleType)
            {
                if (item != null)
                {
                    SPRoleDefinition roleDefinition = item.Web.RoleDefinitions.GetByType(roleType);
                    SetPermissions(item, (SPPrincipal)user, roleDefinition);
                }
            }
            public static void SetPermissions(SPListItem item, SPUser user, string rolename)
            {
                if (item != null)
                {
                    SPRoleDefinition roleDefinition = item.Web.RoleDefinitions[rolename];
                    if (roleDefinition != null)
                        SetPermissions(item, (SPPrincipal)user, roleDefinition);
                }
            }
            public static void SetPermissions(SPListItem item, string groupName, string rolename)
            {
                if (item != null)
                {
                    SPRoleDefinition roleDefinition = item.Web.RoleDefinitions[rolename];
                    SPGroup group = item.Web.Groups[groupName];
                    if (roleDefinition != null && group != null)
                        SetPermissions(item, (SPPrincipal)group, roleDefinition);
                }
            }
            public static void SetPermissions(SPListItem item, string groupName, SPRoleType roleType)
            {
                if (item != null)
                {
                    SPRoleDefinition roleDefinition = item.Web.RoleDefinitions.GetByType(roleType);
                    SPGroup group = item.Web.Groups[groupName];
                    if (group != null)
                        SetPermissions(item, (SPPrincipal)group, roleDefinition);
                }
            }
    
            /// <summary>
            /// Set Permissions
            /// </summary>
            /// <param name="item">SPListItem</param>
            /// <param name="principals">IEnumerable</param>
            /// <param name="roleType">SPRoleType</param>
            public static void SetPermissions(SPListItem item, IEnumerable<SPPrincipal> principals, SPRoleType roleType)
            {
                if (item != null)
                {
                    foreach (SPPrincipal principal in principals)
                    {
                        SPRoleDefinition roleDefinition = item.Web.RoleDefinitions.GetByType(roleType);
                        SetPermissions(item, principal, roleDefinition);
                    }
                }
            }
    
            /// <summary>
            /// Set Permissions
            /// </summary>
            /// <param name="item">SPListItem</param>
            /// <param name="principal">SPPrincipal</param>
            /// <param name="roleType">SPRoleType</param>
            public static void SetPermissions(SPListItem item, SPPrincipal principal, SPRoleType roleType)
            {
                if (item != null)
                {
                    SPRoleDefinition roleDefinition = item.Web.RoleDefinitions.GetByType(roleType);
                    SetPermissions(item, principal, roleDefinition);
                }
            }
    
            /// <summary>
            /// Set Permissions
            /// </summary>
            /// <param name="item">SPListItem</param>
            /// <param name="user">SPUser</param>
            /// <param name="roleDefinition">SPRoleDefinition</param>
            public static void SetPermissions(SPListItem item, SPUser user, SPRoleDefinition roleDefinition)
            {
                if (item != null)
                {
                    SetPermissions(item, (SPPrincipal)user, roleDefinition);
                }
            }
    
            /// <summary>
            /// Set Permissions
            /// </summary>
            /// <param name="item">SPListItem</param>
            /// <param name="principal">SPPrincipal</param>
            /// <param name="roleDefinition">SPRoleDefinition</param>
            public static void SetPermissions(SPListItem item, SPPrincipal principal, SPRoleDefinition roleDefinition)
            {
                if (item != null)
                {
                    BreakRoleSPListItem(item);
                    SPRoleAssignment roleAssignment = new SPRoleAssignment(principal);
                    roleAssignment.RoleDefinitionBindings.Add(roleDefinition);
                    item.RoleAssignments.Add(roleAssignment);
                }
            }
    
            #endregion
    
            #region Deleting all user Permissions from an item
    
            /// <summary>
            /// remove permisions
            /// </summary>
            /// <param name="item">SPListItem</param>
            /// <param name="user">SPUser</param>
            public static void RemovePermissions(SPListItem item, SPUser user)
            {
                if (item != null)
                {
                    RemovePermissions(item, user as SPPrincipal);
                }
            }
    
            public static void RemovePermissions(SPListItem item, string groupName)
            {
                if (item != null)
                {
                    SPGroup group = item.Web.Groups[groupName];
                    if (group != null)
                        RemovePermissions(item, group as SPPrincipal);
                }
            }
    
    
            /// <summary>
            /// remove permisions
            /// </summary>
            /// <param name="item">SPListItem</param>
            /// <param name="principal">SPPrincipal</param>
            public static void RemovePermissions(SPListItem item, SPPrincipal principal)
            {
                if (item != null)
                {
                    BreakRoleSPListItem(item);
                    item.RoleAssignments.Remove(principal);
                    // item.SystemUpdate();
                }
            }
    
            #endregion
    
            #region Removing specific roles from an item
    
            /// <summary>
            /// remove permission
            /// </summary>
            /// <param name="item">SPListItem</param>
            /// <param name="principal">SPPrincipal</param>
            /// <param name="roleDefinition">SPRoleDefinition</param>
            public static void RemovePermissionsSpecificRole(SPListItem item, SPPrincipal principal, SPRoleDefinition roleDefinition)
            {
                if (item != null)
                {
                    SPRoleAssignment roleAssignment = item.RoleAssignments.GetAssignmentByPrincipal(principal);
                    if (roleAssignment != null)
                    {
                        if (roleAssignment.RoleDefinitionBindings.Contains(roleDefinition))
                        {
                            roleAssignment.RoleDefinitionBindings.Remove(roleDefinition);
                            roleAssignment.Update();
                        }
                    }
                }
            }
    
            /// <summary>
            /// remove permission
            /// </summary>
            /// <param name="item">SPListItem</param>
            /// <param name="principal">SPPrincipal</param>
            /// <param name="roleType">SPRoleType</param>
            public static void RemovePermissionsSpecificRole(SPListItem item, SPPrincipal principal, SPRoleType roleType)
            {
                if (item != null)
                {
                    SPRoleDefinition roleDefinition = item.Web.RoleDefinitions.GetByType(roleType);
                    RemovePermissionsSpecificRole(item, principal, roleDefinition);
                }
            }
            public static void RemovePermissionsSpecificRole(SPListItem item, SPUser user, string roleName)
            {
                if (item != null)
                {
                    SPRoleDefinition roleDefinition = item.Web.RoleDefinitions[roleName];
                    if (roleDefinition != null)
                        RemovePermissionsSpecificRole(item, user as SPPrincipal, roleDefinition);
                }
            }
            public static void RemovePermissionsSpecificRole(SPListItem item, string groupName, string roleName)
            {
                if (item != null)
                {
                    SPRoleDefinition roleDefinition = item.Web.RoleDefinitions[roleName];
                    SPGroup group = item.Web.Groups[groupName];
                    if (group != null && roleDefinition != null)
                        RemovePermissionsSpecificRole(item, group as SPPrincipal, roleDefinition);
                }
            }
            #endregion
    
            #region Updating or Modifying Permissions on an item
    
            /// <summary>
            /// modify Permissions
            /// </summary>
            /// <param name="item">SPListItem</param>
            /// <param name="principal">SPPrincipal</param>
            /// <param name="roleType">SPRoleType</param>
            public static void ChangePermissions(SPListItem item, SPPrincipal principal, SPRoleType roleType)
            {
                if (item != null)
                {
                    SPRoleDefinition roleDefinition = item.Web.RoleDefinitions.GetByType(roleType);
                    ChangePermissions(item, principal, roleDefinition);
                }
            }
            public static void ChangePermissions(SPListItem item, SPUser user, string roleName)
            {
                if (item != null)
                {
                    SPRoleDefinition roleDefinition = item.Web.RoleDefinitions[roleName];
                    if (roleDefinition != null)
                        ChangePermissions(item, user as SPPrincipal, roleDefinition);
                }
            }
    
            public static void ChangePermissions(SPListItem item, string groupName, string roleName)
            {
                if (item != null)
                {
                    SPRoleDefinition roleDefinition = item.Web.RoleDefinitions[roleName];
                    SPGroup group = item.Web.Groups[groupName];
                    if (roleDefinition != null)
                        ChangePermissions(item, group as SPPrincipal, roleDefinition);
                }
            }
            /// <summary>
            /// modify Permissions
            /// </summary>
            /// <param name="item">SPListItem</param>
            /// <param name="principal">SPPrincipal</param>
            /// <param name="roleDefinition">SPRoleDefinition</param>
            public static void ChangePermissions(SPListItem item, SPPrincipal principal, SPRoleDefinition roleDefinition)
            {
                //SPRoleAssignment roleAssignment = item.RoleAssignments.GetAssignmentByPrincipal(principal);
    
                //if (roleAssignment != null)
                //{
                //    roleAssignment.RoleDefinitionBindings.RemoveAll();
                //    roleAssignment.RoleDefinitionBindings.Add(roleDefinition);
                //    roleAssignment.Update();
                //}
                RemovePermissions(item, principal);
                SetPermissions(item, principal, roleDefinition);
            }
    
            #endregion
    
            public static void BreakRoleSPListItem(SPListItem item)
            {
                if (item.HasUniqueRoleAssignments)
                {
                    item.ResetRoleInheritance();
                }
                item.BreakRoleInheritance(false);
            }
    
            public static SPUser GetSPUserFromSPListItemByFieldName(SPListItem spItem, string fieldName)
            {
                SPFieldUser field = spItem.Fields[fieldName] as SPFieldUser;
                if (field != null && spItem[fieldName] != null)
                {
                    SPFieldUserValue fieldValue = field.GetFieldValue(spItem[fieldName].ToString()) as SPFieldUserValue;
                    if (fieldValue != null)
                    {
                        return fieldValue.User;
                    }
                }
                return null;
            }
            class DisabledItemEventsScope : SPItemEventReceiver, IDisposable
            {
                public DisabledItemEventsScope()
                {
                    this.EventFiringEnabled = false;
                }
                #region IDisposable Members
                public void Dispose()
                {
                    this.EventFiringEnabled = true;
                }
                #endregion
            }
            public static void SaveListItem(SPListItem item)
            {
                using (DisabledItemEventsScope scope = new DisabledItemEventsScope())
                {
                    item.SystemUpdate();
                }
            }
        }
    }

    http://blog.csdn.net/minglelui/article/details/6731824

  • 相关阅读:
    《第一行代码》学习笔记18-广播接收器Broadcast_Receiver(1)
    《第一行代码》学习笔记17-碎片Fragment(2)
    《第一行代码》学习笔记16-碎片Fragment(1)
    《第一行代码》学习笔记15-UI(4)
    《第一行代码》学习笔记14-UI(3)
    《第一行代码》学习笔记13-UI(2)
    《第一行代码》学习笔记12-UI(1)
    ios-NSMutableAttributedString 更改文本字符串颜色、大小
    ios-实现项目在开发、测试、正式环境快速部署
    ios-滚动导航条页面
  • 原文地址:https://www.cnblogs.com/majiang/p/3834691.html
Copyright © 2020-2023  润新知