Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
        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();
        }
Ejemplo n.º 3
0
        public async Task <ActionResult> DeletePermission([FromBody] PermissionAndRole item)
        {
            try
            {
                await _csomService.DeletePermissions(item);

                return(Ok());
            }
            catch (Exception Ex)
            {
                return(BadRequest("Error: " + Ex.Message));
            }
        }