示例#1
0
        public async Task <IActionResult> Edit(string id)
        {
            var user = await this.cookingHubUserManager.FindByIdAsync(id);

            var isAdmin = await this.cookingHubUserManager.IsInRoleAsync(user, GlobalConstants.AdministratorRoleName);

            var isUser = await this.cookingHubUserManager.IsInRoleAsync(user, GlobalConstants.UserRoleName);

            var currUserRole     = user.Roles.FirstOrDefault(x => x.UserId == id);
            var currUserRoleName = await this.roleManager.FindByIdAsync(currUserRole.RoleId);

            var cookingHubUserEditViewModel = new CookingHubUserEditViewModel
            {
                RoleId   = currUserRole.RoleId,
                RoleName = currUserRoleName.Name,
            };

            cookingHubUserEditViewModel.RolesList = this.roleManager.Roles
                                                    .Select(x => new SelectListItem
            {
                Text = x.Name,
            })
                                                    .ToList();

            if (currUserRoleName.Name == GlobalConstants.AdministratorRoleName && isAdmin == true)
            {
                cookingHubUserEditViewModel.RolesList
                .Find(x => x.Text == GlobalConstants.AdministratorRoleName).Selected = true;
            }

            if (currUserRoleName.Name == GlobalConstants.UserRoleName && isUser == true)
            {
                cookingHubUserEditViewModel.RolesList
                .Find(x => x.Text == GlobalConstants.UserRoleName).Selected = true;
            }

            return(this.View(cookingHubUserEditViewModel));
        }
示例#2
0
        public async Task <IActionResult> Edit(CookingHubUserEditViewModel model, string id)
        {
            if (!this.ModelState.IsValid)
            {
                model.RolesList = this.roleManager.Roles
                                  .Select(x => new SelectListItem
                {
                    Text = x.Name,
                })
                                  .ToList();

                return(this.View(model));
            }

            if (model.NewRole == model.RoleName)
            {
                model.RolesList = this.roleManager.Roles
                                  .Select(x => new SelectListItem
                {
                    Text = x.Name,
                })
                                  .ToList();

                return(this.View(model));
            }

            var user = await this.cookingHubUserManager.FindByIdAsync(id);

            await this.cookingHubUserManager.RemoveFromRoleAsync(user, model.RoleName);

            await this.cookingHubUserManager.AddToRoleAsync(
                user,
                model.NewRole);

            return(this.RedirectToAction("GetAll", "CookingHubUsers", new { area = "Administration" }));
        }