public async Task<Microsoft.AspNetCore.Mvc.IActionResult> AddUserToRole(string userName) { if (userName==null) { return NotFound(); } var user = await userManager.FindByNameAsync(userName); if (user == null ) { return NotFound(); } var roles =await roleManager.Roles.ToListAsync(); var viewModel = new ViewModels.UserManagerViewModel() { UserId = user.Id }; foreach (var item in roles) { if (!await userManager.IsInRoleAsync(user, item.Name)) { viewModel.UserRoles.Add(item.Name); } } ViewData["Roles"] = new Microsoft.AspNetCore.Mvc.Rendering.SelectList(viewModel.UserRoles, "RoleName"); return View(viewModel); }
public async Task<Microsoft.AspNetCore.Mvc.IActionResult> AddUserToRole(ViewModels.UserManagerViewModel viewModel) { if (viewModel == null) { return NotFound(); } var user = await userManager.FindByIdAsync(viewModel.UserId); var fulluser = UnitOfWork.BethanyPieShopUnitOfWork.UserRepository.GetUserByUsername(user.UserName); if (user == null) { return NotFound(); } var requestedRole = viewModel.RoleName; bool roleExistResult = await roleManager.RoleExistsAsync(requestedRole); if (!roleExistResult) { IdentityRole role = new IdentityRole() { Name = requestedRole, }; var roleResult = await roleManager.CreateAsync(role); } if (fulluser.RoleId==Guid.Empty) { var result = await userManager.AddToRoleAsync(user, requestedRole); if (result.Succeeded) { fulluser.RoleId = Guid.Parse(roleManager.FindByNameAsync(requestedRole).Result.Id); UnitOfWork.BethanyPieShopUnitOfWork.UserRepository.Update(fulluser); UnitOfWork.BethanyPieShopUnitOfWork.UserRepository.Save(); viewModel.RoleId = fulluser.RoleId; return RedirectToAction(actionName: "ListAllUsers", controllerName: "ManageUser"); } foreach (var error in result.Errors) { ModelState.AddModelError(string.Empty, error.Description); } } viewModel.RoleId = fulluser.RoleId; return View(viewModel); }
public async Task<Microsoft.AspNetCore.Mvc.IActionResult> RemoveUserFromRole(ViewModels.UserManagerViewModel viewModel) { if (viewModel == null) { return NotFound(); } var user = await userManager.FindByIdAsync(viewModel.UserId); var fulluser = UnitOfWork.BethanyPieShopUnitOfWork.UserRepository.GetUserByUsername(user.UserName); if (user == null) { return NotFound(); } var requestedRole = viewModel.RoleName; if (fulluser.RoleId != Guid.Empty) { var result = await userManager.RemoveFromRoleAsync(user, requestedRole); if (result.Succeeded) { fulluser.RoleId = Guid.Empty; UnitOfWork.BethanyPieShopUnitOfWork.UserRepository.Update(fulluser); UnitOfWork.BethanyPieShopUnitOfWork.UserRepository.Save(); viewModel.RoleId = fulluser.RoleId; return RedirectToAction(actionName: "ListAllUsers", controllerName: "ManageUser"); } foreach (var error in result.Errors) { ModelState.AddModelError(string.Empty, error.Description); } } viewModel.RoleId = fulluser.RoleId; return View(viewModel); }