public async Task <IActionResult> RemoveRoleClaimFromRole(ClaimsByRoleManagementViewModel vm) { var role = await _roleManager.FindByIdAsync(vm.RoleId); IList <Claim> claimsForRole; if (role != null) { claimsForRole = await _roleManager.GetClaimsAsync(role); var lastAccessedClaim = claimsForRole.FirstOrDefault(t => t.Type == vm.ClaimId); if (lastAccessedClaim != null) { IdentityResult resDelete = await _roleManager.RemoveClaimAsync(role, lastAccessedClaim); if (resDelete.Succeeded) { return(RedirectToAction("RoleManagement")); } else { ModelState.AddModelError("", "Something went wrong while deleting the claim for this role"); } } else { ModelState.AddModelError("", "The current claim for this role does not exist. No need to remove it!"); } } else { return(RedirectToAction("RoleManagement")); } //Erreur vm.AllClaimsList = BethanysPieShopClaimTypes.ClaimsList; vm.RoleClaims = claimsForRole; //claimsForRole.Select(c => c.Value).ToList(); return(View("ManageClaimsForRole", vm)); }
public async Task <IActionResult> AddClaimForRole(ClaimsByRoleManagementViewModel vm) { var role = await _roleManager.FindByIdAsync(vm.RoleId); if (role == null) { return(RedirectToAction("RoleManagement", _roleManager.Roles)); } //SB: Vérifie si le role le possède déjà... var claimsForRole = await _roleManager.GetClaimsAsync(role); var lastAccessedClaim = claimsForRole.FirstOrDefault(t => t.Type == vm.ClaimId); if (lastAccessedClaim == null) { var roleClaim = new Claim(vm.ClaimId, vm.ClaimId); var result = await _roleManager.AddClaimAsync(role, roleClaim); //role.Claims.Add(claim); if (result.Succeeded) { return(RedirectToAction("RoleManagement")); } else { ModelState.AddModelError("", "Something went wrong while adding the claim for this role"); } } else { ModelState.AddModelError("", "Role already has this claim, no update was executed."); } //Erreur: vm.AllClaimsList = BethanysPieShopClaimTypes.ClaimsList; vm.RoleClaims = claimsForRole; //claimsForRole.Select(c => c.Value).ToList(); return(View("ManageClaimsForRole", vm)); }
// SB: Ajout Claims for role public async Task <IActionResult> ManageClaimsForRole(string roleId) { IdentityRole role = await _roleManager.FindByIdAsync(roleId); if (role != null) { IList <Claim> roleClaimsInCurrentRole = await _roleManager.GetClaimsAsync(role); var vm = new ClaimsByRoleManagementViewModel { RoleId = role.Id, RoleName = role.Name, AllClaimsList = BethanysPieShopClaimTypes.ClaimsList, RoleClaims = roleClaimsInCurrentRole //roleClaimsInCurrentRole.Select(c => c.Value).ToList() }; return(View(vm)); } else { return(RedirectToAction("RoleManagement")); } }