Пример #1
0
        public async Task <IActionResult> ManageClaimsForUser(ClaimsManagementViewModel claimsManagementViewModel)
        {
            var user = await _userManager.FindByIdAsync(claimsManagementViewModel.UserId);

            if (user == null)
            {
                return(RedirectToAction("UserManagement", _userManager.Users));
            }

            IdentityUserClaim <string> claim =
                new IdentityUserClaim <string> {
                ClaimType = claimsManagementViewModel.ClaimId, ClaimValue = claimsManagementViewModel.ClaimId
            };

            user.Claims.Add(claim);
            var result = await _userManager.UpdateAsync(user);

            if (result.Succeeded)
            {
                return(RedirectToAction("UserManagement", _userManager.Users));
            }

            ModelState.AddModelError("", "User not updated, something went wrong.");

            return(View(claimsManagementViewModel));
        }
Пример #2
0
        public async Task <IActionResult> ManageClaimsForUser(ClaimsManagementViewModel claimsManagementViewModel)
        {
            var user = await _userManager.FindByIdAsync(claimsManagementViewModel.UserId);

            if (user == null)
            {
                return(RedirectToAction("UserManagement", _userManager.Users));
            }

            IdentityUserClaim <string> claim =
                new IdentityUserClaim <string> {
                ClaimType = claimsManagementViewModel.ClaimId, ClaimValue = claimsManagementViewModel.ClaimId, UserId = user.Id
            };

            //System.Security.Claims.Claim claim = new System.Security.Claims.Claim() { };
            //user.Claims.Add(claim);
            // Create customized claim

            await _userManager.AddClaimAsync(user, new Claim(claimsManagementViewModel.ClaimId.ToString(), claimsManagementViewModel.ClaimId.ToString()));

            var result = await _userManager.UpdateAsync(user);

            if (result.Succeeded)
            {
                return(RedirectToAction("UserManagement", _userManager.Users));
            }

            ModelState.AddModelError("", "User not updated, something went wrong.");

            return(View(claimsManagementViewModel));
        }
Пример #3
0
        public async Task <ActionResult> ManageClaimsForUser(ClaimsManagementViewModel claimsManagementViewModel)
        {
            var user = await UserManager.FindByIdAsync(claimsManagementViewModel.UserId);

            if (user == null)
            {
                return(RedirectToAction("UserManagement", UserManager.Users));
            }

            CustomUserClaim claim =
                new CustomUserClaim
            {
                UserId     = user.Id,
                ClaimType  = claimsManagementViewModel.ClaimId.ToString(),
                ClaimValue = claimsManagementViewModel.ClaimId.ToString()
            };

            user.Claims.Add(claim);
            var result = await UserManager.UpdateAsync(user);

            if (result.Succeeded)
            {
                return(RedirectToAction("EditUser", new { id = claimsManagementViewModel.UserId }));
            }

            ModelState.AddModelError("", "User Update error.");

            return(View(claimsManagementViewModel));
        }
Пример #4
0
        public async Task <IActionResult> ManageClaimsForUser(ClaimsManagementViewModel claimsManagementViewModel)
        {
            var user = await _userManager.FindByIdAsync(claimsManagementViewModel.UserId);

            if (user == null)
            {
                return(RedirectToAction("UserManagement", _userManager.Users));
            }

            Claim claim = new Claim(claimsManagementViewModel.ClaimId, claimsManagementViewModel.ClaimId);


            var resultClaim = await _userManager.AddClaimAsync(user, claim);

            if (resultClaim.Succeeded)
            {
                var result = await _userManager.UpdateAsync(user);

                if (result.Succeeded)
                {
                    return(RedirectToAction("UserManagement", _userManager.Users));
                }

                ModelState.AddModelError("", "User not updated, something went wrong.");
            }
            else
            {
                ModelState.AddModelError("", "The claim was not added to the user");
            }

            return(View(claimsManagementViewModel));
        }
Пример #5
0
        //Claims
        public async Task <IActionResult> ManageClaimsForUser(string userId)
        {
            var user = await _userManager.FindByIdAsync(userId);

            if (user == null)
            {
                return(RedirectToAction("UserManagement", _userManager.Users));
            }

            var claimsManagementViewModel = new ClaimsManagementViewModel {
                UserId = user.Id, AllClaimsList = BethanysPieShopClaimTypes.ClaimsList
            };

            return(View(claimsManagementViewModel));
        }
Пример #6
0
        public async Task <ActionResult> ManageClaimsForUser(int userId)
        {
            var user = await UserManager.FindByIdAsync(userId);

            if (user == null)
            {
                return(RedirectToAction("UserManagement", UserManager.Users));
            }

            var claimsManagementViewModel =
                new ClaimsManagementViewModel
            {
                UserId        = user.Id,
                AllClaimsList = BookStoreClaimTypes.ClaimsList
            };

            return(View(claimsManagementViewModel));
        }
Пример #7
0
        public async Task <IActionResult> AddClaimForUser(ClaimsManagementViewModel claimsManagementViewModel)
        {
            var user = await _userManager.FindByIdAsync(claimsManagementViewModel.UserId);

            if (user == null)
            {
                return(RedirectToAction("UserManagement", _userManager.Users));
            }

            //SB: Vérifie si le user le possède déjà...
            var claimsForUser = await _userManager.GetClaimsAsync(user);

            var lastAccessedClaim = claimsForUser.FirstOrDefault(t => t.Type == claimsManagementViewModel.ClaimId);

            if (lastAccessedClaim == null)
            {
                IdentityUserClaim <string> claim = new IdentityUserClaim <string>
                {
                    ClaimType  = claimsManagementViewModel.ClaimId,
                    ClaimValue = claimsManagementViewModel.ClaimId
                };

                user.Claims.Add(claim);
                var result = await _userManager.UpdateAsync(user);

                if (result.Succeeded)
                {
                    return(RedirectToAction("UserManagement", _userManager.Users));
                }
                else
                {
                    ModelState.AddModelError("", "Something went wrong while adding the claim for this user");
                }
            }
            else
            {
                ModelState.AddModelError("", "User already has this claim, no update was executed.");
            }

            // Erreur
            claimsManagementViewModel.AllClaimsList = BethanysPieShopClaimTypes.ClaimsList;
            claimsManagementViewModel.UserClaims    = claimsForUser; //claimsForUser.Select(c => c.Value).ToList();
            return(View("ManageClaimsForUser", claimsManagementViewModel));
        }
        public async Task <IActionResult> ManageClaimsForUser(ClaimsManagementViewModel claimsManagementViewModel)
        {
            var user = await _userManager.FindByIdAsync(claimsManagementViewModel.UserId);

            if (user == null)
            {
                return(RedirectToAction("UserManagement", _userManager.Users));
            }

            var result = await _userManager.AddClaimAsync(user, new Claim(claimsManagementViewModel.ClaimId, claimsManagementViewModel.ClaimId));

            if (result.Succeeded)
            {
                return(RedirectToAction("UserManagement", _userManager.Users));
            }

            ModelState.AddModelError("", "User not updated, something went wrong");

            return(View(claimsManagementViewModel));
        }
Пример #9
0
        //Claims for user
        public async Task <IActionResult> ManageClaimsForUser(string userId)
        {
            var user = await _userManager.FindByIdAsync(userId);

            if (user == null)
            {
                return(RedirectToAction("UserManagement", _userManager.Users));
            }

            var claims = await _userManager.GetClaimsAsync(user);

            var claimsManagementViewModel = new ClaimsManagementViewModel
            {
                UserId        = user.Id,
                UserName      = user.UserName,
                AllClaimsList = BethanysPieShopClaimTypes.ClaimsList,
                UserClaims    = claims //claims.Select(c => c.Value).ToList() //ajout sb
            };

            return(View(claimsManagementViewModel));
        }
Пример #10
0
        public async Task <IActionResult> RemoveUserClaimFromUser(ClaimsManagementViewModel claimsManagementViewModel)
        {
            var user = await _userManager.FindByIdAsync(claimsManagementViewModel.UserId);

            IList <Claim> claimsForUser;

            if (user != null)
            {
                claimsForUser = await _userManager.GetClaimsAsync(user);

                Claim lastAccessedClaim = claimsForUser.FirstOrDefault(t => t.Type == claimsManagementViewModel.ClaimId);
                if (lastAccessedClaim != null)
                {
                    IdentityResult resDelete = await _userManager.RemoveClaimAsync(user, lastAccessedClaim);

                    if (resDelete.Succeeded)
                    {
                        return(RedirectToAction("UserManagement"));
                    }
                    else
                    {
                        ModelState.AddModelError("", "Something went wrong while deleting the claim for this user");
                    }
                }
                else
                {
                    ModelState.AddModelError("", "The current claim for this user does not exist. No need to remove it from him!");
                }
            }
            else
            {
                return(RedirectToAction("UserManagement"));
            }

            // Erreur
            claimsManagementViewModel.AllClaimsList = BethanysPieShopClaimTypes.ClaimsList;
            claimsManagementViewModel.UserClaims    = claimsForUser; //claimsForUser.Select(c => c.Value).ToList();
            return(View("ManageClaimsForUser", claimsManagementViewModel));
        }