public async Task GivePermissions(PermissionAndRole permission) { ClientContext context = GetSharepointContext(permission.Url); List list = context.Web.Lists.GetByTitle(permission.ListName); context.Load(list); await context.ExecuteQueryAsync(); var item = list.GetItemById(permission.ItemId); context.Load(item); await context.ExecuteQueryAsync(); Principal user; if (permission.IsGroup) { user = context.Web.SiteGroups.GetById(permission.Id); } else { user = context.Web.SiteUsers.GetById(permission.Id); context.Load(user); await context.ExecuteQueryAsync(); } RoleDefinition writeDefinition = context.Web.RoleDefinitions.GetByName(permission.roleDefinitionName); RoleDefinitionBindingCollection roleDefCollection = new RoleDefinitionBindingCollection(context); roleDefCollection.Add(writeDefinition); RoleAssignment newRoleAssignment = item.RoleAssignments.Add(user, roleDefCollection); await context.ExecuteQueryAsync(); }
public async Task DeletePermissions(PermissionAndRole permission) { ClientContext context = GetSharepointContext(permission.Url); List list = context.Web.Lists.GetByTitle(permission.ListName); context.Load(list); await context.ExecuteQueryAsync(); var item = list.GetItemById(permission.ItemId); context.Load(item); await context.ExecuteQueryAsync(); Principal user; if (permission.IsGroup) { user = context.Web.SiteGroups.GetById(permission.Id); } else { user = context.Web.SiteUsers.GetById(permission.Id); } context.Load(user); await context.ExecuteQueryAsync(); item.RoleAssignments.GetByPrincipal(user).DeleteObject(); await context.ExecuteQueryAsync(); }
public async Task <ActionResult> DeletePermission([FromBody] PermissionAndRole item) { try { await _csomService.DeletePermissions(item); return(Ok()); } catch (Exception Ex) { return(BadRequest("Error: " + Ex.Message)); } }