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

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

Handle User Email Input and Validation
private _setUserEmail ( )
    private function _setUserEmail()
    {
        global $defender;
        $locale = fusion_get_locale();
        $settings = fusion_get_settings();
        $this->data['user_hide_email'] = !empty($_POST['user_hide_email']) && $_POST['user_hide_email'] == 1 ? 1 : 0;
        $this->_userEmail = isset($_POST['user_email']) ? form_sanitizer($_POST['user_email'], "", "user_email") : "";
        if ($this->_userEmail != "" && $this->_userEmail != $this->userData['user_email']) {
            // override the requirements of password to change email address of a member in admin panel
            if (iADMIN && checkrights("M")) {
                $this->_isValidCurrentPassword = true;
                // changing an email in administration panel
            } elseif (!$this->registration) {
                $this->verify_password();
            }
            // Require user password for email change
            if ($this->_isValidCurrentPassword || $this->registration) {
                // Require a valid email account
                if (preg_check("/^[-0-9A-Z_\\.]{1,50}@([-0-9A-Z_\\.]+\\.){1,50}([0-9A-Z]){2,6}\$/i", $this->_userEmail)) {
                    if (dbcount("(blacklist_id)", DB_BLACKLIST, ":email like replace(if (blacklist_email like '%@%' or blacklist_email like '%\\%%', blacklist_email, concat('%@', blacklist_email)), '_', '\\_')", array(':email' => $this->_userEmail))) {
                        // this email blacklisted.
                        $defender->stop();
                        $defender->setInputError('user_email');
                        $defender->setErrorText('user_email', $locale['u124']);
                    } else {
                        $email_active = dbcount("(user_id)", DB_USERS, "user_email='" . $this->_userEmail . "'");
                        $email_inactive = dbcount("(user_code)", DB_NEW_USERS, "user_email='" . $this->_userEmail . "'");
                        if ($email_active == 0 && $email_inactive == 0) {
                            if ($this->verifyNewEmail && $settings['email_verification'] == 1) {
                                $this->_verifyNewEmail();
                            } else {
                                // Require this for return
                                $this->data['user_email'] = $this->_userEmail;
                            }
                        } else {
                            // email taken
                            $defender->stop();
                            $defender->setInputError('user_email');
                            $defender->setErrorText('user_email', $locale['u125']);
                        }
                    }
                } else {
                    // invalid email address
                    $defender->stop();
                    $defender->setInputError('user_email');
                    $defender->setErrorText('user_email', $locale['u123']);
                    // once refresh, text lost.
                }
            } else {
                // must have a valid password to change email
                $defender->stop();
                $defender->setInputError('user_email');
                $defender->setErrorText('user_email', $locale['u156']);
            }
        }
    }