public async Task <bool> UpdatePermissions(RoleUpdatePermissionsDto roleUpdatePermissionsDto) { if (roleUpdatePermissionsDto == null) { throw new ArgumentException("Parâmetro 'roleUpdatePermissionsDto' incorreto"); } var roleDto = roleUpdatePermissionsDto.Role; var role = await roleManager.FindByIdAsync(roleDto.Id.Value.ToString()); var permissionsIds = roleUpdatePermissionsDto.PermissionIds; foreach (var permissionId in permissionsIds) { IdentityResult result = null; if (roleUpdatePermissionsDto.UpdateType == UpdateTypes.Create) { result = await roleManager.AddClaimAsync(role, new Claim(CustomClaimTypes.Permission, permissionId.ToString())); } if (roleUpdatePermissionsDto.UpdateType == UpdateTypes.Delete) { result = await roleManager.RemoveClaimAsync(role, new Claim(CustomClaimTypes.Permission, permissionId.ToString())); } if (result != null && result.Succeeded == false) { throw new Exception(result.Errors.ToString()); } } return(true); }
public async Task <IActionResult> UpdatePermissions(RoleUpdatePermissionsDto roleUpdatePermissionsDto) { var response = await roleService.UpdatePermissions(roleUpdatePermissionsDto); return(Ok(response)); }