PHPFusion\UserFieldsInput::_setAdminPassword PHP Метод

_setAdminPassword() приватный Метод

private _setAdminPassword ( )
    private function _setAdminPassword()
    {
        global $locale, $defender;
        if ($this->_getPasswordInput("user_admin_password")) {
            // if submit current admin password
            $this->_userAdminPassword = $this->_getPasswordInput("user_admin_password");
            // var1
            $this->_newUserAdminPassword = $this->_getPasswordInput("user_admin_password1");
            // var2
            $this->_newUserAdminPassword2 = $this->_getPasswordInput("user_admin_password2");
            // var3
            $passAuth = new PasswordAuth();
            //print_p($this->_userAdminPassword); // this is not available if no password exist
            //print_p($this->_newUserAdminPassword);
            //print_p($this->_newUserAdminPassword2);
            if (!$this->userData['user_admin_password'] && !$this->userData['user_admin_salt']) {
                // New Admin
                $valid_current_password = 1;
                $passAuth->inputPassword = 'fake';
                $passAuth->inputNewPassword = $this->_userAdminPassword;
                $passAuth->inputNewPassword2 = $this->_newUserAdminPassword2;
            } else {
                // Old Admin
                // Intialize password auth
                $passAuth->inputPassword = $this->_userAdminPassword;
                // var1
                $passAuth->inputNewPassword = $this->_newUserAdminPassword;
                // var2
                $passAuth->inputNewPassword2 = $this->_newUserAdminPassword2;
                // var3
                $passAuth->currentPasswordHash = $this->userData['user_admin_password'];
                $passAuth->currentAlgo = $this->userData['user_admin_algo'];
                $passAuth->currentSalt = $this->userData['user_admin_salt'];
                $valid_current_password = $passAuth->isValidCurrentPassword();
            }
            if ($valid_current_password) {
                $this->_isValidCurrentAdminPassword = 1;
                // authenticated. now do the integrity check
                $_isValidNewPassword = $passAuth->isValidNewPassword();
                switch ($_isValidNewPassword) {
                    case '0':
                        // New password is valid
                        $new_admin_password = $passAuth->getNewHash();
                        $new_admin_salt = $passAuth->getNewSalt();
                        $new_admin_algo = $passAuth->getNewAlgo();
                        $this->data['user_admin_algo'] = $new_admin_algo;
                        $this->data['user_admin_salt'] = $new_admin_salt;
                        $this->data['user_admin_password'] = $new_admin_password;
                        break;
                    case '1':
                        // new password is old password
                        $defender->stop();
                        $defender->setInputError('user_admin_password');
                        $defender->setInputError('user_admin_password1');
                        $defender->setErrorText('user_admin_password', $locale['u144'] . $locale['u146'] . $locale['u133']);
                        $defender->setErrorText('user_admin_password1', $locale['u144'] . $locale['u146'] . $locale['u133']);
                        break;
                    case '2':
                        // The two new passwords are not identical
                        $defender->stop();
                        $defender->setInputError('user_admin_password1');
                        $defender->setInputError('user_admin_password2');
                        $defender->setErrorText('user_admin_password1', $locale['u144'] . $locale['u148a']);
                        $defender->setErrorText('user_admin_password2', $locale['u144'] . $locale['u148a']);
                        break;
                    case '3':
                        // New password contains invalid chars / symbols
                        $defender->stop();
                        $defender->setInputError('user_admin_password1');
                        $defender->setErrorText('user_admin_password1', $locale['u144'] . $locale['u142'] . "<br />" . $locale['u147']);
                        break;
                }
            } else {
                $defender->stop();
                $defender->setInputError('user_admin_password');
                $defender->setErrorText('user_admin_password', $locale['u149a']);
            }
        } else {
            // check db only - admin cannot save profile page without password
            if (iADMIN) {
                $require_valid_password = $this->userData['user_admin_password'] ? TRUE : FALSE;
                if (!$require_valid_password) {
                    // 149 for admin
                    $defender->stop();
                    $defender->setInputError('user_admin_password');
                    $defender->setErrorText('user_admin_password', $locale['u149a']);
                }
            }
        }
    }