Пример #1
0
        public async Task <IActionResult> Edit(string id)
        {
            _logger.LogInformation("Opening Admin/Edit page");

            if (id == null)
            {
                return(NotFound());
            }

            var allRoles = await _userService.GetRolesAsync();

            var userInfo = await _userService.GetUserInfoAsync(id);

            if (userInfo == null)
            {
                return(NotFound());
            }

            var model = new ChangeUserInfoViewModel
            {
                Email      = userInfo.Email,
                FirstName  = userInfo.FirstName,
                SecondName = userInfo.SecondName,
                Role       = userInfo.Role,
                AllRoles   = allRoles.ToList()
            };

            return(View(model));
        }
Пример #2
0
        public async Task <IActionResult> ChangeUserInfo(ChangeUserInfoViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            _logger.LogDebug("ChangeUserInfo action started.");

            var user = await _userManager.FindByNameAsync(User.Identity.Name);

            if (user == null)
            {
                _logger.LogDebug("User not found with Email: {0}", User.Identity.Name);
                return(NotFound("Пользователь не найден."));
            }

            _logger.LogDebug("Change credetials.");
            user.FullName    = model.FullName;
            user.DateOfBirth = model.DateOfBirth;


            if (model.Avatar != null)
            {
                _logger.LogDebug("Change avatar.");
                int id = await _fileProcessing.AvatarSave(model.Avatar);

                user.Avatar = await _db.Files.FindAsync(id);
            }
            await _userManager.UpdateAsync(user);

            _logger.LogDebug("ChangeUserInfo method finish successfull.");

            return(RedirectToAction("Index"));
        }
Пример #3
0
        public async Task <IActionResult> Edit(ChangeUserInfoViewModel model)
        {
            if (ModelState.IsValid)
            {
                User user = await userManager.FindByIdAsync(model.Id);

                if (user != null)
                {
                    user.Email            = model.Email;
                    user.UserName         = model.Email;
                    user.FullName         = model.FullName;
                    user.HasAbilityToLoad = model.HasAbilityToLoad;
                    var newRole = await roleManager.Roles.FirstOrDefaultAsync(x => x.Name == model.RoleName);

                    var userRoles = await DB.UserRoles.Where(x => x.UserId == user.Id).ToListAsync();

                    userRoles.ForEach(x => DB.UserRoles.Remove(x));
                    var result = await userManager.UpdateAsync(user);

                    if (result.Succeeded)
                    {
                        await userManager.AddToRoleAsync(user, newRole.Name);
                    }
                    else
                    {
                        foreach (var error in result.Errors)
                        {
                            ModelState.AddModelError(string.Empty, error.Description);
                        }
                    }
                }
            }
            return(Ok(model));
        }
Пример #4
0
        public async Task <IActionResult> Edit(ChangeUserInfoViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            if (!await _userService.ContainsByIdAsync(model.Id))
            {
                return(NotFound());
            }

            var result = await _userService.EditAsync(new UserInfo
            {
                Id         = model.Id,
                Email      = model.Email,
                FirstName  = model.FirstName,
                SecondName = model.SecondName,
                Role       = model.Role
            }, model.Password);

            if (!result.Succeeded)
            {
                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError("", error.Description);
                }

                return(View(model));
            }

            return(RedirectToAction("Index"));
        }
Пример #5
0
        public virtual ActionResult ChangeUserInfoViewModel(ChangeUserInfoViewModel model)
        {
            var userExists = _userManager.FindByEmail(model.Email);

            if (userExists != null)
            {
                if (userExists.Id != User.Identity.GetUserId <int>())
                {
                    ModelState.AddModelError("Email", "Adres email jest używany!");
                }
            }
            if (ModelState.IsValid)
            {
                var user = _userManager.FindById(User.Identity.GetUserId <int>());
                user.City         = model.Miasto;
                user.LastName     = model.LastName;
                user.Name         = model.Name;
                user.PostalCode   = model.KodPocztowy;
                user.Number       = model.Numer;
                user.PhoneNumber  = model.Telefon;
                user.Street       = model.Ulica;
                user.KontoFirmowe = false;
                if (user.Email != model.Email)
                {
                    var code        = _userManager.GenerateUserToken("ChangeEmail", user.Id);
                    var callbackUrl = Url.Action("ZmianaEmaila", "Konto", new { userId = user.Id, code, newEmail = model.Email, oldEmail = user.Email }, Request.Url.Scheme);
                    ChangeEmailMailBuilder(callbackUrl, model.Email, user.Email);
                    ViewBag.EmailChanged = true;
                }
                var result = _userManager.Update(user);
                model.Success = result.Succeeded;
                return(PartialView("_ChangeUserInfoViewModel", model));
            }
            return(PartialView("_ChangeUserInfoViewModel", model));
        }
Пример #6
0
        public ActionResult ChangeUserInfo(ChangeUserInfoViewModel model, HttpPostedFileBase image)
        {
            var user = UserManager.FindById(User.Identity.GetUserId());

            if (user.UserName == "*****@*****.**")
            {
                return(RedirectToAction("ChangesNotAuthorized"));
            }

            var pPic = model.ProfilePic;

            if (image != null && image.ContentLength > 0)
            {
                var ext = Path.GetExtension(image.FileName).ToLower();
                if (ext != ".png" && ext != ".jpg" && ext != ".jpeg" && ext != ".gif" && ext != ".bmp")
                {
                    ModelState.AddModelError("image", "Invalid Format.");
                }
            }

            if (ModelState.IsValid)
            {
                if (image != null)
                {
                    //Counter
                    var num = 0;
                    //Gets Filename without the extension
                    var fileName = Path.GetFileNameWithoutExtension(image.FileName);
                    pPic = Path.Combine("/assets/ProfilePics/", fileName + Path.GetExtension(image.FileName));
                    //Checks if pPic matches any of the current attachments,
                    //if so it will loop and add a (number) to the end of the filename
                    while (db.Users.AsNoTracking().Any(u => u.ProfilePic == pPic))
                    {
                        //Sets "filename" back to the default value
                        fileName = Path.GetFileNameWithoutExtension(image.FileName);
                        //Add's parentheses after the name with a number ex. filename(4)
                        fileName = string.Format(fileName + "(" + ++num + ")");
                        //Makes sure pPic gets updated with the new filename so it could check
                        pPic = Path.Combine("/assets/ProfilePics/", fileName + Path.GetExtension(image.FileName));
                    }
                    image.SaveAs(Path.Combine(Server.MapPath("~/assets/ProfilePics/"), fileName + Path.GetExtension(image.FileName)));
                }

                var defaultProfilePic = "/assets/ProfilePics/avatar-template.png";
                if (String.IsNullOrWhiteSpace(pPic))
                {
                    pPic = defaultProfilePic;
                }

                user.FirstName  = model.FirstName;
                user.LastName   = model.LastName;
                user.ProfilePic = pPic;
                UserManager.Update(user);

                return(RedirectToAction("Index", new { Message = ManageMessageId.ChangeUserInfoSuccess }));
            }

            return(View(model));
        }
        public ActionResult ChangeUserInfo()
        {
            ChangeUserInfoViewModel model = new ChangeUserInfoViewModel();

            model.FirstName = UserManager.FindById(User.Identity.GetUserId()).FirstName;
            //model.PasswordHash = UserManager.FindById(User.Identity.GetUserId()).PasswordHash;
            return(View(model));
        }
        public ActionResult ChangeUserInfo(ChangeUserInfoViewModel model)
        {
            var user = UserManager.FindById(User.Identity.GetUserId());

            user.FirstName = model.FirstName;
            UserManager.Update(user);
            return(RedirectToAction("Index", "Home"));
        }
Пример #9
0
 public async Task <IActionResult> ChangeUserInfo(ChangeUserInfoViewModel model)
 {
     if (!await _userService.ChangeUserInfo(model, _userId))
     {
         return(Ok("用户名已存在"));
     }
     return(NoContent());
 }
Пример #10
0
        public ActionResult ChangeUserInfo()
        {
            var request = new RequestEntity
            {
                UserId = User.Identity.GetUserId()
            };

            var response = _userService.GetUserInfo(request);;

            ChangeUserInfoViewModel model = MapperHelper.GetValue <User, ChangeUserInfoViewModel>(response);

            return(View(model));
        }
Пример #11
0
        public async Task <IActionResult> ChangeUserInfo()
        {
            User currentUser = await _userManager.FindByNameAsync(User.Identity.Name);

            ChangeUserInfoViewModel model = new ChangeUserInfoViewModel
            {
                DateOfBirth = currentUser.DateOfBirth,
                FullName    = currentUser.FullName
            };

            //Changge props like FirstName LastName Age and etc
            return(View());
        }
Пример #12
0
        public async Task <IActionResult> ChangeUserInfo(ChangeUserInfoViewModel model, string returnUrl = null)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var user = await _userManager.GetUserAsync(User);

            if (user == null)
            {
                throw new ApplicationException($"无法获取当前用户Id'{_userManager.GetUserId(User)}'.");
            }
            string imageSave = string.Empty;

            if (model.Image != null)
            {
                imageSave = SaveImage(model.Image);
            }

            if (!string.IsNullOrEmpty(model.UserName) && !user.UserName.Equals(model.UserName))
            {
                user.UserName           = model.UserName;
                user.NormalizedUserName = model.UserName;
            }
            if (!string.IsNullOrEmpty(model.Email) && !user.Email.Equals(model.Email))
            {
                user.Email           = model.Email;
                user.NormalizedEmail = model.Email;
            }
            //if (!string.IsNullOrEmpty(model.PhoneNumber) && !user.PhoneNumber.Equals(model.PhoneNumber))
            //{
            //    user.PhoneNumber = model.PhoneNumber;
            //}
            user.PhoneNumber = model.PhoneNumber;
            if (!string.IsNullOrEmpty(imageSave))
            {
                user.Image = imageSave;
            }
            if (!string.IsNullOrEmpty(model.Introduce))
            {
                user.Introduce = model.Introduce;
            }

            //_user.Update(user);
            await _userManager.UpdateAsync(user);

            return(RedirectToLocal(returnUrl));
        }
Пример #13
0
        /// <summary>
        ///  修改用户信息
        /// </summary>
        /// <param name="model"></param>
        /// <param name="userId"></param>
        /// <returns></returns>
        public async Task <bool> ChangeUserInfo(ChangeUserInfoViewModel model, Guid userId)
        {
            //确保用户名唯一
            if (await _userRepository.GetAll().AnyAsync(m => m.Account == model.Account))
            {
                return(false);
            }
            var user = await _userRepository.GetOneByIdAsync(userId);

            user.Account     = model.Account;
            user.Gender      = model.Gender;
            user.BirthOfDate = model.BirthOfDate;
            await _userRepository.EditAsync(user);

            return(true);
        }
Пример #14
0
        public ActionResult ChangeUserInfo(ChangeUserInfoViewModel model)
        {
            if (ModelState.IsValid)
            {
                string userId = User.Identity.GetUserId();
                _logger.Info("User {0} requested to change info", userId);

                model.UserId = userId;

                var request = MapperHelper.GetValue <ChangeUserInfoViewModel, User>(model);

                _userService.UpdateUserInfo(request);

                return(RedirectToAction("Index", new { Message = ManageMessageId.ChangeInfoSuccess }));
            }
            return(View(model));
        }
Пример #15
0
        //GET: /Manage/UpdateInformation
        public ActionResult ChangeUserInfo()
        {
            var user = UserManager.FindById(User.Identity.GetUserId());

            if (user.UserName == "*****@*****.**")
            {
                return(RedirectToAction("ChangesNotAuthorized"));
            }

            ChangeUserInfoViewModel model = new ChangeUserInfoViewModel();

            model.FirstName  = user.FirstName;
            model.LastName   = user.LastName;
            model.ProfilePic = user.ProfilePic;

            return(View(model));
        }
Пример #16
0
        public virtual ActionResult ChangeUserInfoViewModel()
        {
            var user  = _userManager.FindById(User.Identity.GetUserId <int>());
            var model = new ChangeUserInfoViewModel
            {
                Miasto      = user.City ?? "Nie podano",
                Email       = user.Email,
                LastName    = user.LastName ?? "Nie podano",
                Name        = user.Name ?? "Nie podano",
                Numer       = user.Number ?? "Nie podano",
                Telefon     = user.PhoneNumber ?? "Nie podano",
                KodPocztowy = user.PostalCode ?? "Nie podano",
                Ulica       = user.Street ?? "Nie podano",
                Success     = null
            };

            return(PartialView("_ChangeUserInfoViewModel", model));
        }
Пример #17
0
        public async Task <IActionResult> ChangeUserInfo()
        {
            var user = await _userManager.GetUserAsync(User);

            if (user == null)
            {
                throw new ApplicationException($"无法获取当前用户Id'{_userManager.GetUserId(User)}'.");
            }

            var model = new ChangeUserInfoViewModel
            {
                UserName    = user.UserName,
                Email       = user.Email,
                PhoneNumber = user.PhoneNumber,
                Introduce   = user.Introduce
            };

            return(View(model));
        }
Пример #18
0
        public async Task <IActionResult> ChangeUserInfo(ChangeUserInfoViewModel model)
        {
            if (ModelState.IsValid)
            {
                User user = _chatRepo.GetUserByName(User.Identity.Name);
                if (user != null)
                {
                    if (!_chatService.IsValidUserInfo(model.FirstName, model.LastName))
                    {
                        ModelState.AddModelError(string.Empty, $"Invalid FirstName or LastName");
                    }
                    await _chatRepo.ChangeUserInfo(user, model.FirstName, model.LastName, model.AvatarUrl);

                    return(RedirectToAction("IM"));
                }
                else
                {
                    ModelState.AddModelError(string.Empty, $"Cannot find user with username {User.Identity.Name}");
                }
            }
            return(View(model));
        }
Пример #19
0
        public IHttpActionResult ChangeAccountInfo([FromBody] ChangeUserInfoViewModel model)
        {
            if (!ModelState.IsValid)
            {
                throw new Exception(ConvertToErrorMessage(ModelState));
            }

            var currentUser = Storage.Users.GetById(CurrentUser.UserId);

            if (currentUser.PasswordHash != PasswordUtil.GetHash(model.OldPassword))
            {
                throw new Exception("Старый пароль не верный");
            }



            currentUser.Email        = model.Email;
            currentUser.Name         = model.Email.Split('@')[0];
            currentUser.PasswordHash = PasswordUtil.GetHash(model.NewPassword);

            Storage.Users.Save(currentUser);

            return(Ok());
        }