public HttpResponseMessage GetAllUsers() //lay tat ca user { try { var userList = new List <ManagerUserViewModel>(); foreach (var user in context.Users.ToList()) { var userRolesId = user.Roles.Select(m => m.RoleId).ToList(); var userId = user.Id; var userModelInfo = context.Users.Where(m => m.Id == userId).Select(m => m.UserInfo).SingleOrDefault(); var model = new ManagerUserViewModel() { UserId = user.Id, UserName = user.UserName, Password = user.PasswordHash, SecurityStamp = Guid.NewGuid().ToString(), Email = user.Email, UserInfo = userModelInfo, Roles = context.Roles.Where(r => userRolesId.Contains(r.Id)) .OrderBy(r => r.Name) .ToList() }; userList.Add(model); } //var output = JsonConvert.SerializeObject(userList); return(Request.CreateResponse(HttpStatusCode.OK, userList)); } catch { return(Request.CreateResponse(HttpStatusCode.BadRequest)); } }
public HttpResponseMessage ChangePassword(ManagerUserViewModel user) //cap nhat user { try { ApplicationUser userFromDb = context.Users.Where(u => u.Id == user.UserId).FirstOrDefault(); var responseMessage = new { title = "Lỗi đổi mật khẩu", message = "Error", isSuccess = false }; if (UserManager.CheckPassword(userFromDb, user.Password)) { IdentityResult result = UserManager.ChangePassword(user.UserId, user.Password, user.NewPassword); context.SaveChanges(); if (result.Succeeded == true) { responseMessage = new { title = "Thành công", message = "Đổi mật khẩu thành công", isSuccess = true } } ; else { responseMessage = new { title = "Lỗi đổi mật khẩu", message = "Mật khẩu phải bao gồm cả số, chữ thường và chữ in hoa", isSuccess = false } }; } else { responseMessage = new { title = "Lỗi đổi mật khẩu", message = "Mật khẩu cũ không đúng", isSuccess = false }; } return(Request.CreateResponse(HttpStatusCode.OK, responseMessage)); } catch { return(Request.CreateResponse(HttpStatusCode.BadRequest)); } }
public ActionResult Manager() { ManagerUserViewModel viewModelManage = new ManagerUserViewModel(); ViewBag.ChangePassword = true; ViewBag.ReturnUrl = Url.Action("Manager"); return View(viewModelManage); }
public ManagerUserViewModel GetUserDetails(string userId) { if (userId == "own") { userId = _authRepository.GetUsers().FirstOrDefault(x => x.UserName == _loggedUser.Identity.Name).Id; } ManagerUserViewModel output = new ManagerUserViewModel(); var userDb = _authRepository.GetUser(userId); if (userDb != null) { output.UserId = userId; output.UserName = userDb.UserName; output.Email = userDb.Email; output.UserRoles = _authRepository.GetUserRoles(_loggedUser, userDb.Roles.Select(x => x.RoleId).ToList()); output.ServiceRoles = _authRepository.GetServiceRoles(userDb.Roles.Select(x => x.RoleId).ToList()); } else { throw new Exception("Не постои таков корисник!"); } return(output); }
// Опис: Методот врши вчитување на сите корисници од база // Влезни параметри: податочна вредност pageIndex, itemsPerPage, IIdentity loggedInUser // Излезни параметри: PagedCollection<ManagerUserViewModel> public PagedCollection <ManagerUserViewModel> GetAllUsers(int pageIndex, int itemsPerPage, string sortDir, string sortCol, IPrincipal loggedInUser) { var usersDb = GetUsers().ToList(); var rolesDb = GetRoles(); var userList = new List <ManagerUserViewModel>(); foreach (var user in usersDb) { if (user.UserName != loggedInUser.Identity.Name) { var userRolesId = user.Roles.Select(m => m.RoleId).ToList(); var model = new ManagerUserViewModel { UserId = user.Id, UserName = user.UserName, Email = user.Email, Roles = rolesDb.Where(r => userRolesId.Contains(r.Id)).Select(x => x.Name).ToList(), CanBeModified = CanBeModified(user, loggedInUser, rolesDb.ToList()) }; userList.Add(model); } } IQueryable <ManagerUserViewModel> usersPaged = userList.AsQueryable(); // If sortCol is empty if (String.IsNullOrEmpty(sortCol)) { sortCol = "UserName"; } // If sortDir is empty if (String.IsNullOrEmpty(sortDir)) { sortDir = "asc"; } if (sortDir == "asc") { usersPaged = usersPaged.OrderBy(sortCol); } else if (sortDir == "desc") { usersPaged = usersPaged.OrderBy(sortCol + " descending"); } else { usersPaged = usersPaged.OrderBy(x => x.UserName); } var pagedItems = usersPaged.Skip((pageIndex - 1) * itemsPerPage).Take(itemsPerPage).ToList(); var totalSize = GetUsers().Count(); if (totalSize > 0) { totalSize = totalSize - 1; } return(new PagedCollection <ManagerUserViewModel>(pageIndex, itemsPerPage, totalSize, pagedItems.ToList())); }
public HttpResponseMessage UpdateUser(ManagerUserViewModel user) //cap nhat user { try { //update user at aspNetUser Table var ApplicationUserUpdate = new ApplicationUser { Id = user.UserId, EmailConfirmed = false, PasswordHash = UserManager.PasswordHasher.HashPassword(user.Password), SecurityStamp = user.SecurityStamp, UserName = user.UserName, Email = user.Email, }; context.Entry(ApplicationUserUpdate).State = System.Data.Entity.EntityState.Modified; context.SaveChanges(); //update userinfo at userinfo table UserInfo userInfoModel = new UserInfo(); //check avatar if (user.UserInfo.Avatar != "") { user.UserInfo.Avatar = "/Content/UploadFiles/images/" + user.UserInfo.Avatar; } else { user.UserInfo.Avatar = "/Content/UploadFiles/images/No_image_available.png"; } userInfoModel = user.UserInfo; using (var ncontext = new ApplicationDbContext()) { ncontext.Entry(userInfoModel).State = System.Data.Entity.EntityState.Modified; ncontext.SaveChanges(); }; //update userRoles at aspNetRoles table ApplicationUser userFromDb = context.Users.Where(u => u.UserName.Equals(user.UserName, StringComparison.CurrentCultureIgnoreCase)).FirstOrDefault(); var userRoles = UserManager.GetRoles(user.UserId); if (userRoles.Count() > 0) { //remove user from current roles foreach (var role in userRoles) { UserManager.RemoveFromRole(userFromDb.Id, role); } //add user to new roles UserManager.AddToRole(user.UserId, user.Roles.SingleOrDefault().Name); } return(Request.CreateResponse(HttpStatusCode.OK)); } catch { return(Request.CreateResponse(HttpStatusCode.BadRequest)); } }
public ActionResult Manager(ManagerUserViewModel model) { ViewBag.ReturnUrl = Url.Action("Manager"); if (ModelState.IsValid) { UserService userService = new UserService(); User userNow = userService.GetItem(new Domain.User() { Id = AuthenticationBase.UserId, Active = true }); userNow.Pwd = Utils.ConvertToHash(model.OldPassword); userNow = userService.UserAcess(userNow); if (userNow == null) return RedirectToAction(Url.Action("Index")); userNow.Pwd = Utils.ConvertToHash(model.NewPassword); if (userService.ChangePassWord(userNow)) userService.UserLastAcess(userNow.Id); return RedirectToLocal(Url.Action("Index", "Home")); } return View(model); }