Ejemplo n.º 1
0
        public async Task <IActionResult> EditClaims([FromBody] RoleClaimsModel model)
        {
            var role = await roleManager.FindByIdAsync(model.Id);

            if (role == null)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, new Response {
                    Status = "Error", Message = "Role not found!"
                }));
            }

            var currentClaims = await roleManager.GetClaimsAsync(role);

            // delete roles
            foreach (var claim in currentClaims.Where(c => !model.Claims.Any(r => r.Type.Equals(c.Type))))
            {
                await roleManager.RemoveClaimAsync(role, claim);
            }

            //add roles
            foreach (var claim in model.Claims.Where(r => !currentClaims.Any(c => c.Type.Equals(r.Type))))
            {
                await roleManager.AddClaimAsync(role, claim);
            }

            return(Ok(new Response {
                Status = "Success", Message = "Role claims updated successfully!"
            }));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> UpdateRoleClaims(string roleName, [FromBody] RoleClaimsModel roleClaims)
        {
            if (string.IsNullOrWhiteSpace(roleName))
            {
                return(BadRequest("the role name is not null, please add role name"));
            }

            try
            {
                var id = await _accountService.UpdateRoleClaimsAsync(roleName, roleClaims.Permissions);

                return(Content(id));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }