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 users
item.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