예제 #1
0
        public async Task<ActionResult> Edit(string nickname, EditViewModel model)
        {
            if (ModelState.IsValid)
            {
                // update entity in db.
                var oldUser = UserManager.FindByName(nickname);

                String email = oldUser.Email;
                var result = await UserManager.SetEmailAsync(oldUser.Id, model.Email);
                if (result.Succeeded)
                {
                    if (!String.IsNullOrEmpty(model.NewPassword))
                        result = await UserManager.ChangePasswordAsync(oldUser.Id, model.Password, model.NewPassword);
                    if (result.Succeeded)
                    {

                        Engine.BusinessManagement.User.UpdateUser(new Engine.Dbo.User()
                        {
                            Id = oldUser.T_UserId,
                            AspNetUsersId = oldUser.Id,
                            Description = model.Description,
                            Mail = model.Email,
                            Nickname = model.Nickname,
                            Password = model.Password,
                        });
                        return RedirectToAction("Display", "Account", new RouteValueDictionary()
                        {
                            { "nickname", nickname },
                            { "updated", true }
                        });
                    }
                    else
                        result = await UserManager.SetEmailAsync(oldUser.Id, email);
                }
                AddErrors(result);
            }

            return View(model);
        }
예제 #2
0
        public ActionResult Edit(string nickname)
        {
            // Check if edit is available to current user.
            var actualUser = UserManager.FindById(User.Identity.GetUserId());

            if (!User.IsInRole("Admin") && !User.IsInRole("Moderator") && actualUser.UserName != nickname)
                return RedirectToAction("Index", "Home");

            var user = Engine.BusinessManagement.User.FindUserByNickname(nickname);

            EditViewModel userModel = new EditViewModel()
            {
                Nickname = user.Nickname,
                Email = user.Mail,
                Description = user.Description,
            };
            ViewBag.UserId = user.Id;
            return View("Edit", userModel);
        }