public async Task <IActionResult> ManageRoles(List <UserRoles> model, string userId) { var user = await Usermanager.FindByIdAsync(userId); if (user == null) { ViewBag.ErrorMessage = $"User with Id = {userId} cannot be found"; return(View("NotFound")); } var roles = await Usermanager.GetRolesAsync(user); var result = await Usermanager.RemoveFromRolesAsync(user, roles); if (!result.Succeeded) { ModelState.AddModelError("", "Cannot remove user existing roles"); return(View(model)); } result = await Usermanager.AddToRolesAsync(user, model.Where(x => x.isSelected).Select(y => y.RoleName)); if (!result.Succeeded) { ModelState.AddModelError("", "Cannot add selected roles to user"); return(View(model)); } return(RedirectToAction("EditUser", new { id = userId })); }
public async Task <IActionResult> DeleteUser(string id) { var user = await Usermanager.FindByIdAsync(id); if (user == null) { ViewBag.ErrorMessage = $"User with Id = {id} cannot be found"; return(View("NotFound")); } else { if (await Usermanager.IsInRoleAsync(user, "Admin") || await Usermanager.IsInRoleAsync(user, "Employee")) { var claims = await Usermanager.GetClaimsAsync(user); var claimResult = await Usermanager.RemoveClaimsAsync(user, claims); if (!claimResult.Succeeded) { ModelState.AddModelError("", "Cannot remove user existing claims"); return(View("ListUsers")); } var roles = await Usermanager.GetRolesAsync(user); var RolesResult = await Usermanager.RemoveFromRolesAsync(user, roles); if (!RolesResult.Succeeded) { ModelState.AddModelError("", "Cannot remove user existing roles"); return(View("ListUsers")); } user.isactive = false; var result1 = await Usermanager.UpdateAsync(user); if (result1.Succeeded) { return(RedirectToAction("ListUsers")); } foreach (var error in result1.Errors) { ModelState.AddModelError("", error.Description); } return(View("ListUsers")); } var result = await Usermanager.DeleteAsync(user); if (result.Succeeded) { return(RedirectToAction("ListUsers")); } foreach (var error in result.Errors) { ModelState.AddModelError("", error.Description); } return(View("ListUsers")); } }
public IActionResult UserRoleAtttemption(string UserId) { AppUser appUser = Usermanager.FindByIdAsync(UserId).Result; ViewBag.UserName = appUser.UserName; IQueryable <AppRole> roles = RoleManager.Roles; List <string> UserRoles = Usermanager.GetRolesAsync(appUser).Result as List <string>; List <UserRoleViewModel> roleViewModels = new List <UserRoleViewModel>(); foreach (var role in roles) { UserRoleViewModel usrvm = new UserRoleViewModel(); usrvm.RoleID = role.Id; usrvm.RoleName = role.Name; if (UserRoles.Contains(role.Name)) { usrvm.exist = true; } else { usrvm.exist = false; } roleViewModels.Add(usrvm); } //List<string> Roles=RoleManager.GetRoleIdAsync(RoleId).Result as List<string>(); return(View(roleViewModels)); }
public async Task <IActionResult> GetUserById(string id) { var user = await Usermanager.FindByIdAsync(id); if (user != null) { RegisterEmployeeViewModel r = new RegisterEmployeeViewModel() { id = user.Id, FullName = user.FullName, Email = user.Email, City = util.getCities().FirstOrDefault(x => x.id == user.City).city, PhoneNumber = user.PhoneNumber, Photopath = user.Photopath, StreetAdress = user.StreetAdress, }; if (user.store_id != null) { r.store_id = (int)user.store_id; } if (User.IsInRole("Super Admin") || User.IsInRole("Admin")) { var userClaims = await Usermanager.GetClaimsAsync(user); var userRoles = await Usermanager.GetRolesAsync(user); if (user.store_id != null) { r.StoreName = util.GetAllStores().FirstOrDefault(x => x.store_id == user.store_id).StoreName; } r.addedBy = user.addedBy; foreach (var claim in userClaims) { UserClaim u = new UserClaim() { ClaimType = claim.Type, ClaimValue = claim.Value }; r.Claims.Add(u); } foreach (var role in userRoles) { UserRoles ro = new UserRoles() { RoleName = role }; r.Roles.Add(ro); } } return(View("~/Views/Home/Profile.cshtml", r)); } //not Found ViewBag.Name = "User"; return(View("ProductNotFound", id)); }
public async Task <IActionResult> EditUser(string id) { var user = await Usermanager.FindByIdAsync(id); if (user == null) { ViewBag.ErrorMessage = $"User with Id = {id} cannot be found"; return(View("NotFound")); } if (User.IsInRole("Admin")) { var LoginUser = await Usermanager.GetUserAsync(User); if (!User.HasClaim("Edit User", "true") && LoginUser.Id != id) { return(Forbid()); } } ViewBag.Stores = util.GetAllStores(); // GetClaimsAsync retunrs the list of user Claims var userClaims = await Usermanager.GetClaimsAsync(user); // GetRolesAsync returns the list of user Roles var userRoles = await Usermanager.GetRolesAsync(user); var model = new EditUserViewModel { Id = user.Id, Email = user.Email, FullName = user.FullName, cityId = user.City, PhoneNumber = user.PhoneNumber, StreetAdress = user.StreetAdress, store_id = user.store_id, Existingphotopath = user.Photopath, Claims = userClaims.Select(c => c.Type + ":" + c.Value).ToList(), Roles = userRoles }; ViewBag.cities = util.getCities(); return(View(model)); }