public ActionResult DeleteConfirmed(string id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } using (var DB = new DontFretEntities()) { /// gets user from database var user = DB.Users.Where(u => u.Id.Equals(id)).First(); /// check if user exists if (user == null) { return(HttpNotFound()); } ///delete user and save changes DB.Users.Remove(user); DB.SaveChanges(); return(View(user)); } }
/// <summary> /// Edits roles in the DB /// </summary> /// <param name="id"></param> /// <returns>View with edited roles</returns> public ActionResult Edit(string id) { using (var DB = new DontFretEntities()) { ///validate Id if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } ///gets user from the database var user = DB.Users.Where(u => u.Id == id).First(); ///check if user exists already if (user == null) { return(HttpNotFound()); } ///creates a new view model var ViewModel = new EditUserViewModel(); ViewModel.User = user; ViewModel.Roles = GetUserRoles(user, DB); ///pass the model to the view return(View(ViewModel)); } }
/// <summary> /// GET: User Roles from DB /// </summary> /// <param name="user"></param> /// <param name="dB"></param> /// <returns>List of roles</returns> private List <Role> GetUserRoles(ApplicationUser user, DontFretEntities dB) { ///create user manager var userManager = Request.GetOwinContext().GetUserManager <ApplicationUserManager>(); ///get all application roles var roles = dB.Roles.Select(r => r.Name).OrderBy(r => r).ToList(); ///for each application role, check if the user has that role var userRoles = new List <Role>(); foreach (var roleName in roles) { var role = new Role { Name = roleName }; if (userManager.IsInRole(user.Id, roleName)) { role.isSelected = true; } userRoles.Add(role); } ///returns a list with all roles return(userRoles); }
/// <summary> /// GET: User/List /// </summary> /// <returns>view with a list of users</returns> public ActionResult List() { using (var DB = new DontFretEntities()) { var users = DB.Users.ToList(); var admins = GetAdminUserNames(users, DB); ViewBag.Admins = admins; return(View(users)); } }
/// <summary> /// Gets a hashset of admin details /// </summary> /// <param name="users"></param> /// <param name="context"></param> /// <returns>A hashSet of Admins</returns> private HashSet <string> GetAdminUserNames(List <ApplicationUser> users, DontFretEntities context) { var UserManager = new UserManager <ApplicationUser>( new UserStore <ApplicationUser>(context)); var Admins = new HashSet <string>(); foreach (var user in users) { if (UserManager.IsInRole(user.Id, "Store Manager") || (UserManager.IsInRole(user.Id, "Assistant Manager"))) { Admins.Add(user.UserName); } } return(Admins); }
/// <summary> /// SET: user roles for admin, user or suspended /// </summary> /// <param name="model"></param> /// <param name="user"></param> /// <param name="dB"></param> private void SetUserRoles(EditUserViewModel model, ApplicationUser user, DontFretEntities dB) { var userManager = Request.GetOwinContext().GetUserManager <ApplicationUserManager>(); foreach (var role in model.Roles) { if (role.isSelected) { userManager.AddToRole(user.Id, role.Name); } else if (!role.isSelected) { userManager.RemoveFromRole(user.Id, role.Name); } } }
public ActionResult Edit(string id, EditUserViewModel viewModel) { ///checks if modelState is valid if (ModelState.IsValid) { using (var DB = new DontFretEntities()) { ///get user from database var user = DB.Users.FirstOrDefault(u => u.Id == id); ///check if user exists already if (user == null) { return(HttpNotFound()); } ///if password field is not empty change password to new value if (!string.IsNullOrEmpty(viewModel.Password)) { var hasher = new PasswordHasher(); var passwordHash = hasher.HashPassword(viewModel.Password); user.PasswordHash = passwordHash; } ///set user property values user.Email = viewModel.User.Email; user.FullName = viewModel.User.FullName; user.UserName = viewModel.User.Email; this.SetUserRoles(viewModel, user, DB); ///save changes DB.Entry(user).State = EntityState.Modified; DB.SaveChanges(); return(RedirectToAction("List")); } } return(View(viewModel)); }