Note: SPPrincipal can be either an SPUser or SPGroup Object
Breaking Inheritance
Adding Permissions to an item
//specifies whether the item has unique security//or inherits its role assignments from a parent object.item.HasUniqueRoleAssignments//Stops inheriting permissions from parent object// if true, it will keep all existing users// false, to remove all usersitem.BreakRoleInheritance(true);//Removes the local role assignments//and reverts to role assignments from the parent object.item.ResetRoleInheritance(); |
Adding Permissions to an item
//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 };public static void SetPermissions(this 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);}}}public static void SetPermissions(this 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(this SPListItem item, SPPrincipal principal, SPRoleType roleType){if (item != null){SPRoleDefinition roleDefinition = item.Web.RoleDefinitions.GetByType(roleType);SetPermissions(item, principal, roleDefinition);}}public static void SetPermissions(this SPListItem item, SPUser user, SPRoleDefinition roleDefinition){if (item != null){SetPermissions(item, (SPPrincipal)user, roleDefinition);}}public static void SetPermissions(this SPListItem item, SPPrincipal principal, SPRoleDefinition roleDefinition){if (item != null){SPRoleAssignment roleAssignment = new SPRoleAssignment(principal);roleAssignment.RoleDefinitionBindings.Add(roleDefinition);item.RoleAssignments.Add(roleAssignment);}} |
Deleting all user Permissions from an item
public static void RemovePermissions(this SPListItem item, SPUser user){if (item != null){RemovePermissions(item, user as SPPrincipal);}}public static void RemovePermissions(this SPListItem item, SPPrincipal principal){if (item != null){item.RoleAssignments.Remove(principal);item.SystemUpdate();}} |
Removing specific roles from an item
public static void RemovePermissionsSpecificRole(this 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();}}}}public static void RemovePermissionsSpecificRole(this SPListItem item, SPPrincipal principal, SPRoleType roleType){if (item != null){SPRoleDefinition roleDefinition = item.Web.RoleDefinitions.GetByType(roleType);RemovePermissionsSpecificRole(item, principal, roleDefinition);}} |
Updating or Modifying Permissions on an item
public static void ChangePermissions(this SPListItem item, SPPrincipal principal, SPRoleType roleType){if (item != null){SPRoleDefinition roleDefinition = item.Web.RoleDefinitions.GetByType(roleType);ChangePermissions(item, principal, roleDefinition);}}public static void ChangePermissions(this SPListItem item, SPPrincipal principal, SPRoleDefinition roleDefinition){SPRoleAssignment roleAssignment = item.RoleAssignments.GetAssignmentByPrincipal(principal);if (roleAssignment != null){roleAssignment.RoleDefinitionBindings.RemoveAll();roleAssignment.RoleDefinitionBindings.Add(roleDefinition);roleAssignment.Update();}} |
No comments:
Post a Comment