Remove permission in Sharepoint List using Client Object Model

ClientContext clientContext = new ClientContext(“http://rambabupc:500/sites/Test”);
Web site = clientContext.Web;
List list = clientContext.Web.Lists.GetByTitle(“TestUpload1”);
list.BreakRoleInheritance(true, false);
clientContext.Load(site, s => s.RoleDefinitions);
clientContext.ExecuteQuery();
clientContext.Load(list, l => l.HasUniqueRoleAssignments);

clientContext.ExecuteQuery();
List<Principal> groupsToRemove = new List<Principal>();
if (list.HasUniqueRoleAssignments)
{
RoleDefinition role = site.RoleDefinitions.GetByName(“Full Control”);
clientContext.Load(role);
clientContext.ExecuteQuery();
RoleAssignmentCollection oRoleAssignments = list.RoleAssignments;
clientContext.Load(oRoleAssignments);
clientContext.ExecuteQuery();
List<RoleDefinition> rolesToRemove = new List<RoleDefinition>();
foreach (RoleAssignment oRoleAssignment in oRoleAssignments)
{
clientContext.Load(oRoleAssignment, r => r.Member, r => r.RoleDefinitionBindings);
clientContext.ExecuteQuery();
Principal oPrincipal = oRoleAssignment.Member;
if (oPrincipal.PrincipalType == Microsoft.SharePoint.Client.Utilities.PrincipalType.SharePointGroup)
{
int roleDefCount = 0;
foreach (RoleDefinition def in oRoleAssignment.RoleDefinitionBindings)
{
if (def.Id == role.Id)
{
break;
}
else
{
roleDefCount++;
if (roleDefCount == oRoleAssignment.RoleDefinitionBindings.Count)
groupsToRemove.Add(oPrincipal);
}
}
}
}

foreach (Principal group in groupsToRemove)
{
list.RoleAssignments.GetByPrincipal(group).DeleteObject();
}

list.Update();
}
clientContext.ExecuteQuery();
}

This entry was posted in Uncategorized. Bookmark the permalink.

Leave a comment