public async Task <IActionResult> Edit(EditUserFormModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var user = await userManager.GetUserAsync(User);

            if (user == null)
            {
                throw new ApplicationException($"Unable to load user with ID '{userManager.GetUserId(User)}'.");
            }

            var changePasswordResult = await userManager.ChangePasswordAsync(user, model.CurrentPassword, model.Password);

            if (!changePasswordResult.Succeeded)
            {
                AddErrors(changePasswordResult);
                return(View(model));
            }

            await signInManager.SignInAsync(user, isPersistent : false);

            StatusMessage = "Your password has been changed.";

            return(RedirectToAction(nameof(Details), new { user.Id }));
        }
示例#2
0
        public async Task <ActionResult> EditProfile(EditUserFormModel model)
        {
            var newData = Mapper.Map <EditUserFormModel, DutUser>(model);
            var result  = await Task.Run((() => UserService.EditProfile(newData)));

            return(Json(new { model = result.Successed?"confirmed":"failed", message = result.Message }, JsonRequestBehavior.AllowGet));
        }
        public async Task <bool> EditUserAsync(User user, EditUserFormModel userForm)
        {
            try
            {
                if (_context.Users.Any(c => c.Username.ToLower() == userForm.Username.ToLower() && c.Id != userForm.UserId))
                {
                    throw new StockAssistanceProviderGlobalException(UsersServiceErrors.UserExistError);
                }
                var userEdt = await _context.Users.FirstOrDefaultAsync(c => c.Id == userForm.UserId);

                if (userEdt == null)
                {
                    throw new StockAssistanceProviderGlobalException(UsersServiceErrors.UserNotFoundError);
                }
                var groupRole = await _context.GroupAuthRoles.Where(c => c.GroupAuthId == userForm.GroupAuthId).Include(c => c.Role).ToListAsync();

                if (groupRole == null)
                {
                    throw new StockAssistanceProviderGlobalException(UsersServiceErrors.GroupNotFoundError);
                }


                if (userEdt.GroupAuthId != userForm.GroupAuthId)
                {
                    _context.UserRoles.RemoveRange(_context.UserRoles.Where(c => c.UserId == userForm.UserId).ToList());

                    var newUserRoles = groupRole.Select(c => c.Role).Select(role =>
                                                                            new UserRole
                    {
                        UserId = userForm.UserId,
                        Role   = role
                    }).ToList();
                    _context.UserRoles.AddRange(newUserRoles);
                }

                userEdt.GroupAuthId       = userForm.GroupAuthId;
                userEdt.FirstName         = userForm.FirstName;
                userEdt.Description       = userForm.Description;
                userEdt.IsActive          = userForm.IsActive;
                userEdt.UserType          = userForm.UserType;
                userEdt.AvailableUserType = userForm.AvailableUserType;
                userEdt.LastName          = userForm.LastName;
                if (!string.IsNullOrEmpty(userForm.Password))
                {
                    userEdt.Password = _securityService.GetSha256Hash(userForm.Password);
                }
                userEdt.SerialNumber = Guid.NewGuid().ToString("N");

                userEdt.Location    = userForm.Location;
                userEdt.PhoneNumber = userForm.PhoneNumber;
                _context.Users.Update(userEdt);
                _context.SaveChanges();
                return(true);
            }
            catch (Exception ex)
            {
                throw new StockAssistanceProviderGlobalException(UsersServiceErrors.AddUserError, ex);
            }
        }
        public async Task <IActionResult> Edit(string id)
        {
            var user = await userManager.GetUserAsync(User);

            if (user == null)
            {
                throw new ApplicationException($"Unable to load user with ID '{userManager.GetUserId(User)}'.");
            }

            var model = new EditUserFormModel
            {
                Email         = user.Email,
                Phone         = user.PhoneNumber,
                LastLoginTime = user.LastLoginTime
            };

            return(View(model));
        }
示例#5
0
        public virtual ActionResult EditUser(Guid userId)
        {
            var user = db.Get <User>().Where(u => u.Id == userId).Single();

            var model = new EditUserFormModel()
            {
                UserId         = user.Id,
                UserName       = user.UserName,
                EmailAddress   = user.EmailAddress,
                DisplayName    = user.DisplayName,
                Enabled        = user.IsApproved,
                AssignedRoles  = user.Roles.ToArray(),
                AvailableRoles = UserRole.GetRoles().Select(r => new SelectListItem {
                    Text = r.Value, Value = r.Key, Selected = user.IsInRole(r.Key)
                }).ToArray()
            };

            return(PartialView(MVC.User.Views.EditUser, model, "ExistingUser"));
        }
示例#6
0
        public virtual ActionResult EditUser(Guid userId, [Bind(Prefix = "ExistingUser")] EditUserFormModel model)
        {
            var user = db.Get <User>().Where(u => u.Id == userId).Single();

            if (ModelState.IsValid)
            {
                try
                {
                    if (this.db.Get <User>().Any(u => u.UserName.Equals(model.UserName, StringComparison.InvariantCultureIgnoreCase) && u.Id != user.Id))
                    {
                        ModelState.AddModelError("ExistingUser.UserName", "A user with that user name already exists");
                    }
                    else
                    {
                        user.SetUserName(model.EmailAddress);
                        user.SetEmailAddress(model.EmailAddress);
                        user.SetDisplayName(model.DisplayName);
                        user.SetApprovalStatus(model.Enabled);

                        db.SaveChanges();
                    }
                }
                catch (Exception ex)
                {
                    ModelState.AddModelError("ExistingUser", ex.Message);
                }
            }

            if (!ModelState.IsValid)
            {
                model.AvailableRoles = UserRole.GetRoles().Select(r => new SelectListItem {
                    Text = r.Value, Value = r.Key, Selected = model.AssignedRoles.Contains(r.Key)
                }).ToArray();
            }

            return(ModelState.IsValid ?
                   Json(new { success = true }) :
                   Json(new { success = false, formWithErrorMessages = this.RenderPartialViewToString(MVC.User.Views.EditUser, model, "ExistingUser") }));
        }
示例#7
0
        public async Task <IActionResult> EditUser([FromBody]  EditUserFormModel userForm)
        {
            var user = await _usersService.EditUserAsync(HttpContext.GetUser(), userForm);

            return(Ok(GetRequestResult(user)));
        }