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!" })); }
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)); } }