Exemplo n.º 1
0
        public ActionResult ProfileSetting(EditUserInfoModel model)
        {
            var user = _workContext.CurrentUser;

            if (model.GenderName.IsNotNull())
            {
                model.Gender = model.GenderName != "男";
            }

            if (_userService.EditUserProfile(user.UserID, model.Email, model.BornYear, model.BornMonth, model.BornDay,
                                             model.Gender))
            {
                Success("个人资料修改成功");
                _authenticationService.ClearCacheUser();
            }
            else
            {
                Error();
            }

            ViewBag.BornYearList  = GetYearDropdownDataSource(model.BornYear);
            ViewBag.BornMonthList = GetMonthDropdownDataSource(model.BornMonth);
            ViewBag.BornDayList   = GetDayDropdownDataSource(model.BornDay);

            return(View(model));
        }
Exemplo n.º 2
0
        public async Task <Result> EditUserInfo(long id, EditUserInfoModel model)
        {
            using (var uw = this.CreateUnitOfWork())
            {
                var user = await uw.GetAsync <User>(t => t.ID == id);

                if (user == null)
                {
                    return(Result.ErrorResult("该用户不存在"));
                }

                user.WebSite   = model.WebSite;
                user.Location  = model.Location;
                user.Signature = model.Signature;

                await uw.UpdateAsync(user);

                var redis = this.RedisProvider.GetDatabase();
                redis.JsonHashSet(RedisKeys.User, user.ID, user);

                this.SecurityManager.ReloadUser();

                return(Result.SuccessResult());
            }
        }
        public ActionResult Edit(EditUserInfoModel model)
        {
            UserInfoModel currentUserInfo = GetUserInfoFromMembershipUser(Membership.GetUser(), dbContext);

            if (currentUserInfo.Id != model.UserInfoModel.Id)
            {
                throw new InvalidOperationException("User does not have permission to edit a different user's account.");
            }

            if (ModelState.IsValid)
            {
                try
                {
                    //following fields are not editable by user
                    model.UserInfoModel.RankId         = currentUserInfo.RankId;
                    model.UserInfoModel.SignUpDate     = currentUserInfo.SignUpDate;
                    model.UserInfoModel.MembershipId   = currentUserInfo.MembershipId;
                    model.UserInfoModel.EnrollmentDate = currentUserInfo.EnrollmentDate;

                    model.UserInfoModel.BirthDate = model.UserInfoModel.BirthDate.ToUniversalTime();

                    dbContext.Entry(currentUserInfo).CurrentValues.SetValues(model.UserInfoModel);
                    dbContext.SaveChanges();
                    TempData["isSuccessEdit"] = true;
                    return(RedirectToAction("Edit"));
                }
                catch (Exception ex)
                {
                    throw new InvalidOperationException("Failed to update UserInfoModel", ex);
                }
            }
            return(View(model));
        }
        public ActionResult Edit(int id)
        {
            if (GetUserInfoFromMembershipUser(Membership.GetUser(), dbContext).Id != id)
            {
                throw new InvalidOperationException("User does not have permission to edit a different user's account.");
            }

            UserInfoModel userToEdit = dbContext.Users.Include("Rank").Single(u => u.Id == id);

            if (userToEdit == null)
            {
                throw new InvalidOperationException("Could not find UserInfo for provided Id.");
            }

            MembershipUser membershipUser = Membership.GetUser(userToEdit.MembershipId);

            if (membershipUser == null)
            {
                throw new InvalidOperationException("Could not find MembershipUser for provided MembershipId.");
            }

            EditUserInfoModel editUserInfoModel = new EditUserInfoModel {
                Email = membershipUser.Email, UserName = membershipUser.UserName
            };

            editUserInfoModel.UserInfoModel = userToEdit;

            return(View(editUserInfoModel));
        }
Exemplo n.º 5
0
        public async Task <ActionResult> EditUser([Bind] EditUserInfoModel model)
        {
            if (ModelState.IsValid)
            {
                User user = new User()
                {
                    UserName      = model.Email,
                    Email         = model.Email,
                    FirstName     = model.FirstName,
                    LastName      = model.LastName,
                    PhoneNumber   = model.PhoneNumber,
                    StreetAddress = model.StreetAddress,
                    ZipCode       = model.ZipCode,
                    City          = model.City
                };

                var apiResult = await webAPI.UpdateAsync <User>(user, ApiURL.USERS_INFO_UPDATE + User.Identity.Name);

                if (apiResult.Status.IsSuccessStatusCode)
                {
                    // If email was updated, update token cookie and authcookie with new criterias!
                    if (!User.Identity.Name.Equals(model.Email))
                    {
                        await SetAuthCookie(apiResult.APIPayload);
                    }
                    // return Redirect(returnUrl);
                    TempData["UpdateSuccess"] = "Din information har uppdaterats!";

                    if (accessor.HttpContext.Request.Query["order"] != "order")
                    {
                        return(RedirectToAction(nameof(EditUser)));
                    }
                    else
                    {
                        return(RedirectToAction("Index", "Order"));
                    }
                }
                else
                {
                    var errors = JsonSerializer.Deserialize <List <ErrorCodes> >(apiResult.ResponseContent, new JsonSerializerOptions()
                    {
                        PropertyNameCaseInsensitive = true
                    });

                    if (errors.Any(x => x.Code == "DuplicateEmail"))
                    {
                        ModelState.AddModelError("Email", "Adressen används redan");
                    }
                }
            }

            return(View(model));
        }
Exemplo n.º 6
0
        public async Task <IActionResult> EditSettings(EditUserInfoModel model)
        {
            ViewBag.Title = "设置";

            if (!ModelState.IsValid)
            {
                ViewBag.SettingsResult = OperationResult.Failure(Core.Resource.Messages.ModelStateNotValid);
                return(this.View("Index"));
            }

            await this.UserService.EditUserInfo(SecurityManager.CurrentUser.ID, model);

            ViewBag.SettingsResult = new OperationResult();

            return(this.View("Index"));
        }
Exemplo n.º 7
0
        public IActionResult UpdateAll([FromBody] EditUserInfoModel model)
        {
            var apiRep = new APIResponse();
            var userId = string.Empty;

            if (HttpContext.User.Identity is ClaimsIdentity identity)
            {
                userId = identity.FindFirst(ClaimTypes.Name).Value;
            }

            if (userId == null)
            {
                return(BadRequest(new { Error = true, Message = StringHelper.Instance.APIInvalidToken }));
            }
            var Account = _accountService.Get(userId);

            if (Account == null)
            {
                return(BadRequest(new { Error = true, Message = StringHelper.Instance.APIInvalidToken }));
            }

            var result = _accountService.CheckValidPassword(Account.Email, model.OldPassword);

            if (!result)
            {
                return(Ok(new { Error = true, Message = "Your old password isn't correct!" }));
            }

            Account.Password    = model.NewPassword;
            Account.Name        = model.Name;
            Account.PhoneNumber = model.PhoneNumber;
            Account.Gender      = model.Gender;

            _accountService.Update(userId, Account);
            apiRep.Data = new
            {
                Gender      = Account.Gender,
                Name        = Account.Name,
                PhoneNumber = Account.PhoneNumber,
            };

            apiRep.Message = "Update successfull!";

            return(Ok(apiRep));
        }
Exemplo n.º 8
0
        public IActionResult EditUserInfo([FromBody] EditUserInfoModel editUserInfoModel)
        {
            var auth      = HttpContext.AuthenticateAsync();
            var userIdstr = auth.Result.Principal.Claims.First(t => t.Type.Equals(ClaimTypes.NameIdentifier))?.Value;

            if (!uint.TryParse(userIdstr, out uint userId))
            {
                return(BadRequest(new { messager = "权限查找失败,ID解析失败=" + userId }));
            }


            UserInfoData userInfo = UserInfoManager.Instance.GetUserInfo(userId);

            if (userInfo == null)
            {
                return(BadRequest(new { messager = "权限查找失败,找不到ID=" + userId + " 的用户" }));
            }
            if (userInfo.Password != editUserInfoModel.Password)
            {
                return(BadRequest(new { messager = "请输入正确的密码" }));
            }

            if (!string.IsNullOrEmpty(editUserInfoModel.NewNickName) && !string.IsNullOrWhiteSpace(editUserInfoModel.NewNickName))
            {
                if (UserInfoManager.Instance.EditUserNickName(userId, editUserInfoModel.NewNickName, out userInfo))
                {
                    return(Ok(new { messager = "Ok", data = new { userInfo.UserId, userInfo.NickName } }));
                }
                else
                {
                    return(BadRequest(new { messager = "昵称修改失败" }));
                }
            }


            if (UserInfoManager.Instance.EditUserPassword(userId, editUserInfoModel.NewPassword, out userInfo))
            {
                return(Ok(new { messager = "Ok", data = new { userInfo.UserId, userInfo.Password } }));
            }
            else
            {
                return(BadRequest(new { messager = "密码修改失败,密码需由大写小写字母加数字组成的6-20位字符组成" }));
            }
        }
Exemplo n.º 9
0
        public async Task <ActionResult> EditUser()
        {
            var email = User.Identity.Name;

            var token = await webAPIToken.New();

            var user = await webAPI.GetOneAsync <User>(ApiURL.USERS + email, token);

            var editUserInfoModel = new EditUserInfoModel()
            {
                Email         = user.Email,
                FirstName     = user.FirstName,
                LastName      = user.LastName,
                PhoneNumber   = user.PhoneNumber,
                StreetAddress = user.StreetAddress,
                ZipCode       = user.ZipCode,
                City          = user.City
            };

            return(View(editUserInfoModel));
        }