コード例 #1
0
        public IActionResult ChangeUserRole(string username, string userId, string currentRole)
        {
            var model = new ChangeUserRoleInputModel()
            {
                Username = username,
                UserId   = userId,
                RoleName = currentRole
            };

            return(View(model));
        }
コード例 #2
0
        public async Task <IActionResult> ChangeUserRole(ChangeUserRoleInputModel changeUserRoleInputModel)
        {
            // Validate The admin
            var admin         = this.userServices.GetUserByName(changeUserRoleInputModel.Username);
            var validPassword = await userManager
                                .CheckPasswordAsync(this.mapper.Map <ApplicationUser>(admin),
                                                    changeUserRoleInputModel.SecretPassword);

            var user = await userManager.FindByNameAsync(changeUserRoleInputModel.Username);


            if (ModelState.IsValid && validPassword && user != null)
            {
                var userRoles = await this.userManager.GetRolesAsync(user);

                await userManager.RemoveFromRoleAsync(user, userRoles[0]);


                if (!await this.roleManager.RoleExistsAsync(changeUserRoleInputModel.RoleName))
                {
                    await this.roleManager.CreateAsync(new IdentityRole(changeUserRoleInputModel.RoleName));
                }

                await userManager.AddToRoleAsync(user, changeUserRoleInputModel.RoleName);

                await adminServices.ChangeUserRoleAsync(this.mapper.Map <ApplicationUserServiceModel>(user), changeUserRoleInputModel.RoleName);;

                return(RedirectToAction("ShowUserDetails", "AdminUser", new { id = user.Id }));
            }
            else
            {
                if (user == null)
                {
                    ModelState.AddModelError("Username", "There is no such user!");
                }
                else if (validPassword == false)
                {
                    ModelState.AddModelError("Password", "Invalid Passowrd!");
                }

                return(RedirectToAction("ChangeUserRole", "AdminUser", new { userId = user.Id, username = user.UserName, currentRole = user.Role }));
            }
        }