public async Task <ApiResult> EditUser([FromBody] UserInputEdit userInput)
        {
            var result = new ApiResult();

            if (!ModelState.IsValid)
            {
                result.Code    = 400;
                result.Message = "编辑用户失败:" + ModelState.FirstErrorMessage();
                return(result);
            }

            if (!userInput.UserId.HasValue)
            {
                result.Code    = 400;
                result.Message = "编辑用户失败:必须提供参数 GroupId";
                return(result);
            }

            if (await _userService.SaveAsync(userInput, ModelState) == null)
            {
                result.Code    = 400;
                result.Message = "编辑用户失败:" + ModelState.FirstErrorMessage();
                return(result);
            }

            result.Code    = 200;
            result.Message = "编辑用户成功";
            return(result);
        }
示例#2
0
        public object ItemSaveEdit(User user, UserInputEdit userInput)
        {
            //TODO: (erikpo) Check permissions

            ModelResult <User> results = userService.EditUser(user, userInput);

            if (!results.IsValid)
            {
                ModelState.AddModelErrors(results.ValidationState);

                return(ItemEdit(user));
            }

            return(Redirect(Url.AppPath(Url.ManageUsers())));
        }
示例#3
0
        public async Task <ApiResult> EditUser(UserInputEdit userInput)
        {
            var result = new ApiResult();

            if (await _userService.SaveAsync(userInput, ModelState) == null)
            {
                result.Code    = 400;
                result.Message = "编辑用户失败:" + ModelState.FirstErrorMessage();
                return(result);
            }

            result.Code    = 200;
            result.Message = "编辑用户成功";
            return(result);
        }
示例#4
0
        public ModelResult <UserAuthenticated> EditUser(UserAddress userAddress, UserInputEdit userInputEdit)
        {
            ValidationStateDictionary validationState = new ValidationStateDictionary();

            validationState.Add(typeof(UserInputEdit), validator.Validate(userInputEdit));

            if (!validationState.IsValid)
            {
                return(new ModelResult <UserAuthenticated>(validationState));
            }

            Guid siteID = context.Site.ID;
            UserAuthenticated originalUser;
            UserAuthenticated newUser;

            using (TransactionScope transaction = new TransactionScope())
            {
                originalUser = repository.GetUser(siteID, userAddress.UserName);
                newUser      = originalUser.Apply(userInputEdit, e => e.ComputeEmailHash(), EntityState.Normal);

                validateUser(newUser, originalUser, validationState);

                if (!validationState.IsValid)
                {
                    return(new ModelResult <UserAuthenticated>(validationState));
                }

                newUser = repository.Save(newUser, siteID);

                invalidateCachedUserForEdit(newUser, originalUser);

                transaction.Complete();
            }

            pluginEngine.ExecuteAll("UserSaved", new { context, user = new UserReadOnly(newUser) });
            pluginEngine.ExecuteAll("UserEdited", new { context, user = new UserReadOnly(newUser), userOriginal = new UserReadOnly(originalUser) });

            return(new ModelResult <UserAuthenticated>(newUser, validationState));
        }
示例#5
0
 public void EditUser(User user, UserInputEdit userInput, out ValidationStateDictionary validationState)
 {
     throw new NotImplementedException();
 }
示例#6
0
 public static User Apply(this User user, UserInputEdit input, Func <string, string> computeEmailHash, EntityState status)
 {
     return(new User(user.ID, input.UserName, input.DisplayName, input.Email, computeEmailHash(input.Email), user.LanguageDefault, status));
 }