Exemple #1
0
    public void OnConfirmButtonPressed()
    {
        if (_newPassword.text.Length > 8)
        {
            string currentPassword = UserController.GetPassword(_user.Id), oldPassword = SHA256Encoder.GetStringHash(_oldPassword.text),
                   newPassword = SHA256Encoder.GetStringHash(_newPassword.text), confirmPassword = SHA256Encoder.GetStringHash(_confirmPassword.text);

            _messageText.text = "";
            if (currentPassword != oldPassword && !_isCurrentUserAdmin)
            {
                _messageText.text = "Старый пароль не верен";
            }
            else
            {
                if (newPassword != confirmPassword && !_isCurrentUserAdmin)
                {
                    _messageText.text = "Новые пароли не совпадают";
                }
                else if (UserController.UpdateUserPassword(_user.Id, newPassword))
                {
                    SceneManager.LoadScene("UserEdit");
                }
            }
        }
        else
        {
            _messageText.text = "Пароль должен быть более 8 символов";
        }
        _oldPassword.text = _newPassword.text = _confirmPassword.text = "";
    }
    private bool CheckCredentials()
    {
        _messageText.text = "";
        var  user              = UserController.GetUser(_loginText.text);
        bool loginCondition    = user != null && !UserController.IsUserDeleted(user.Id),
             passwordCondition = loginCondition && SHA256Encoder.GetStringHash(_passwordText.text).ToUpper() == UserController.GetPassword(user.Id);

        if (!loginCondition)
        {
            _messageText.text = "Такого пользователя не существует";
        }
        else if (!passwordCondition)
        {
            _messageText.text = "Неверный пароль";
        }
        else
        {
            _sessionUserId = user.Id;
        }

        return(loginCondition && passwordCondition);
    }
    public void OnConfirmButtonPressed()
    {
        _messageText.text = "";
        _login.text       = _login.text.ToLower();
        _email.text       = _email.text.ToLower();
        _phone.text       = _phone.text.ToLower();
        Regex loginRegex = new Regex(@"[a-z0-9_-]{5,15}"),
              emailRegex = new Regex(@"(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*)@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])"),
              phoneRegex = new Regex(@"((8|\+7)-?)?\(?\d{3}\)?-?\d{1}-?\d{1}-?\d{1}-?\d{1}-?\d{1}-?\d{1}-?\d{1}");

        bool lastNameCondition = false, passwordCondition = false,
             loginCondition = false, emailCondition = false, phoneCondition = false;

        if (_lastName.text == "")
        {
            _messageText.text = "Поле \"Фамилия\" должно быть заполнено" + Environment.NewLine;
        }
        else
        {
            lastNameCondition = true;
        }

        if (_password.text.Length <= 8)
        {
            _messageText.text = "Пароль должен быть более 8 символов" + Environment.NewLine;
        }
        else
        {
            passwordCondition = true;
        }

        if (_login.text == "")
        {
            _messageText.text += "Поле \"Логин\" должно быть заполнено" + Environment.NewLine;
        }
        else if (loginRegex.Match(_login.text).Length != _login.text.Length)
        {
            _messageText.text += "Недопустимый логин" + Environment.NewLine;
        }
        else if (UserController.GetUser(_login.text) == null)
        {
            loginCondition = true;
        }
        else
        {
            _messageText.text += "Такой логин уже используется" + Environment.NewLine;
        }

        if (_email.text != "" && emailRegex.Match(_email.text).Length != _email.text.Length)
        {
            _messageText.text += "Недопустимый адрес эл.почты" + Environment.NewLine;
        }
        else if (_email.text == "" || UserController.GetUser(_email.text) == null)
        {
            emailCondition = true;
        }
        else
        {
            _messageText.text += "Такой адрес эл.почты уже используется" + Environment.NewLine;
        }

        if (_phone.text != "" && phoneRegex.Match(_phone.text).Length != _phone.text.Length)
        {
            _messageText.text += "Недопустимый номер телефона" + Environment.NewLine;
        }
        else if (_phone.text == "" || UserController.GetUser(_phone.text) == null)
        {
            phoneCondition = true;
        }
        else
        {
            _messageText.text += "Такой номер телефона уже используется" + Environment.NewLine;
        }

        if (lastNameCondition && passwordCondition && loginCondition && emailCondition && phoneCondition)
        {
            var user = new UserDTO
            {
                FirstName  = _firstName.text == "" ? null : _firstName.text,
                MiddleName = _middleName.text == "" ? null : _middleName.text,
                LastName   = _lastName.text,
                Email      = _email.text == "" ? null : _email.text,
                Phone      = _phone.text == "" ? null : _phone.text,
                Login      = _login.text,
                Id         = Guid.NewGuid().ToString().Replace('{', '\0').Replace('}', '\0')
            };
            if (UserController.AddUser(user, SHA256Encoder.GetStringHash(_password.text)))
            {
                foreach (var roleCode in _addRoles)
                {
                    RoleController.AddUserRole(user.Id, roleCode);
                }
            }
            SceneManager.LoadScene("UsersList");
        }
    }