Пример #1
0
        public ConsoleErrorResultModel ValidateUser(int?userId, PortalSettings portalSettings, UserInfo currentUserInfo, out UserInfo userInfo)
        {
            userInfo = null;
            if (!userId.HasValue)
            {
                return(new ConsoleErrorResultModel(Localization.GetString("Prompt_NoUserId", Constants.LocalResourcesFile)));
            }

            KeyValuePair <HttpStatusCode, string> response;

            userInfo = _userControllerWrapper.GetUser(userId.Value, portalSettings, currentUserInfo, out response);

            if (userInfo == null)
            {
                var portals = _portalController.GetPortals();

                foreach (var portal in portals)
                {
                    var portalInfo = portal as PortalInfo;
                    userInfo = _userControllerWrapper.GetUserById(portalInfo.PortalID, userId.Value);

                    if (userInfo != null)
                    {
                        break;
                    }
                }

                if (userInfo != null &&
                    !_contentVerifier.IsContentExistsForRequestedPortal(
                        userInfo.PortalID,
                        portalSettings,
                        true
                        )
                    )
                {
                    userInfo = null;
                }
            }

            return(userInfo == null ? new ConsoleErrorResultModel(response.Value) : null);
        }
Пример #2
0
        public override ConsoleResultModel Run()
        {
            ConsoleErrorResultModel errorResultModel;
            UserInfo userInfo;

            if ((errorResultModel = _userValidator.ValidateUser(UserId, PortalSettings, User, out userInfo)) != null)
            {
                return(errorResultModel);
            }

            var userModels = new List <UserModel> {
                new UserModel(userInfo)
            };

            if (userInfo.IsDeleted)
            {
                return(new ConsoleErrorResultModel(LocalizeString("Prompt_UserAlreadyDeleted")));
            }

            var validPortalId = userInfo.PortalID;

            if (!_userControllerWrapper.DeleteUserAndClearCache(ref userInfo, Notify, false))
            {
                return(new ConsoleErrorResultModel(LocalizeString("Prompt_UserDeletionFailed"))
                {
                    Data = userModels
                });
            }

            // attempt to retrieve the user from the dB
            userInfo   = _userControllerWrapper.GetUserById(validPortalId, userInfo.UserID);
            userModels = new List <UserModel> {
                new UserModel(userInfo)
            };
            return(new ConsoleResultModel(LocalizeString("UserDeleted"))
            {
                Data = userModels, Records = userModels.Count
            });
        }
Пример #3
0
        public override ConsoleResultModel Run()
        {
            var sbResults = new StringBuilder();

            ConsoleErrorResultModel errorResultModel;
            UserInfo userInfo;

            if (
                (errorResultModel = _userValidator.ValidateUser(
                     UserId,
                     PortalSettings,
                     User,
                     out userInfo)
                ) != null
                )
            {
                return(errorResultModel);
            }

            // Update the User
            // process the password first. If invalid, we can abort other changes to the user
            if (!string.IsNullOrEmpty(Password))
            {
                try
                {
                    _usersController.ChangePassword(userInfo.PortalID, userInfo.UserID, Password);
                    sbResults.Append(LocalizeString("ChangeSuccessful"));
                }
                catch (Exception ex)
                {
                    return(new ConsoleErrorResultModel(ex.Message));
                }
            }

            if (Approved.HasValue && userInfo.Membership.Approved != Approved.Value)
            {
                _usersController.UpdateAuthorizeStatus(userInfo, userInfo.PortalID, Approved.Value);
                sbResults.Append(LocalizeString(Approved.Value ? "UserAuthorized" : "UserUnAuthorized"));
            }

            var basicUpdated = !string.IsNullOrEmpty(Username) || !string.IsNullOrEmpty(DisplayName) || !string.IsNullOrEmpty(FirstName) || !string.IsNullOrEmpty(LastName) || !string.IsNullOrEmpty(Email);
            var userBasicDto = new UserBasicDto
            {
                Displayname = userInfo.DisplayName,
                UserId      = userInfo.UserID,
                Email       = userInfo.Email,
                IsDeleted   = userInfo.IsDeleted,
                Username    = userInfo.Username,
                Firstname   = userInfo.FirstName,
                Lastname    = userInfo.LastName
            };

            // Update Username
            if (!string.IsNullOrEmpty(Username))
            {
                userBasicDto.Username = Username;
            }
            // Update other properties
            if (!string.IsNullOrEmpty(DisplayName))
            {
                userBasicDto.Displayname = DisplayName;
            }
            if (!string.IsNullOrEmpty(FirstName))
            {
                userBasicDto.Firstname = FirstName;
            }
            if (!string.IsNullOrEmpty(LastName))
            {
                userBasicDto.Lastname = LastName;
            }
            if (!string.IsNullOrEmpty(Email))
            {
                userBasicDto.Email = Email;
            }
            if (basicUpdated)
            {
                try
                {
                    _usersController.UpdateUserBasicInfo(userBasicDto, userInfo.PortalID);
                }
                catch (SqlException)
                {
                    return(new ConsoleErrorResultModel(LocalizeString("UsernameNotUnique") + "\n" + sbResults));
                }
                catch (Exception ex)
                {
                    return(new ConsoleErrorResultModel(ex.Message + sbResults));
                }
            }
            // retrieve the updated user
            var updatedUser = _userControllerWrapper.GetUserById(userInfo.PortalID, userInfo.UserID);

            var lst = new List <UserModel> {
                new UserModel(updatedUser)
            };

            return(new ConsoleResultModel(string.Empty)
            {
                Data = lst,
                Records = lst.Count,
                FieldOrder = UserModel.FieldOrder,
                Output = LocalizeString("UserUpdated")
            });
        }