Example #1
0
        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));
        }
Example #2
0
        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));
        }
Example #3
0
        // 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"));
            }
        }