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));
     }
 }
示例#3
0
 public ActionResult Manager()
 {
     ManagerUserViewModel viewModelManage = new ManagerUserViewModel();
     ViewBag.ChangePassword = true;
     ViewBag.ReturnUrl = Url.Action("Manager");
     return View(viewModelManage);
 }
示例#4
0
        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);
        }
示例#5
0
        // Опис: Методот врши вчитување на сите корисници од база
        // Влезни параметри: податочна вредност 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));
            }
        }
示例#7
0
        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);
        }