erLhcoreClassUserValidator::validateAccount PHP Method

validateAccount() public static method

public static validateAccount ( &$userData )
    public static function validateAccount(&$userData)
    {
        $definition = array('Password' => new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::OPTIONAL, 'unsafe_raw'), 'Password1' => new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::OPTIONAL, 'unsafe_raw'), 'Email' => new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::REQUIRED, 'validate_email'), 'Name' => new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::REQUIRED, 'unsafe_raw'), 'Surname' => new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::REQUIRED, 'unsafe_raw'), 'Username' => new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::OPTIONAL, 'unsafe_raw'), 'JobTitle' => new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::OPTIONAL, 'unsafe_raw'), 'Skype' => new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::OPTIONAL, 'unsafe_raw'), 'XMPPUsername' => new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::OPTIONAL, 'unsafe_raw'), 'ChatNickname' => new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::OPTIONAL, 'unsafe_raw'), 'UserTimeZone' => new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::OPTIONAL, 'unsafe_raw'), 'UserInvisible' => new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::OPTIONAL, 'boolean'), 'ReceivePermissionRequest' => new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::OPTIONAL, 'boolean'));
        $form = new ezcInputForm(INPUT_POST, $definition);
        $Errors = array();
        if (!$form->hasValidData('Username') || $form->Username == '') {
            $Errors[] = erTranslationClassLhTranslation::getInstance()->getTranslation('user/validator', 'Please enter a username');
        } else {
            if ($form->Username != $userData->username) {
                $userData->username = $form->Username;
                if (erLhcoreClassModelUser::userExists($userData->username) === true) {
                    $Errors[] = erTranslationClassLhTranslation::getInstance()->getTranslation('user/validator', 'User exists');
                }
            }
        }
        if ($form->hasValidData('Password') && $form->hasValidData('Password1')) {
            $userData->password_temp_1 = $form->Password;
            $userData->password_temp_2 = $form->Password1;
        }
        if ($form->hasInputField('Password') && (!$form->hasInputField('Password1') || $form->Password != $form->Password1)) {
            $Errors[] = erTranslationClassLhTranslation::getInstance()->getTranslation('user/validator', 'Passwords mismatch');
        } else {
            if ($form->hasInputField('Password') && $form->hasInputField('Password1') && $form->Password != '' && $form->Password1 != '') {
                $userData->setPassword($form->Password);
                $userData->password_front = $form->Password;
            }
        }
        if ($form->hasValidData('ChatNickname') && $form->ChatNickname != '') {
            $userData->chat_nickname = $form->ChatNickname;
        } else {
            $userData->chat_nickname = '';
        }
        if (!$form->hasValidData('Email')) {
            $Errors[] = erTranslationClassLhTranslation::getInstance()->getTranslation('user/validator', 'Wrong email address');
        } else {
            $userData->email = $form->Email;
        }
        if (!$form->hasValidData('Name') || $form->Name == '') {
            $Errors[] = erTranslationClassLhTranslation::getInstance()->getTranslation('user/validator', 'Please enter a name');
        } else {
            $userData->name = $form->Name;
        }
        if ($form->hasValidData('Surname') && $form->Surname != '') {
            $userData->surname = $form->Surname;
        } else {
            $userData->surname = '';
        }
        if ($form->hasValidData('JobTitle') && $form->JobTitle != '') {
            $userData->job_title = $form->JobTitle;
        } else {
            $userData->job_title = '';
        }
        if ($form->hasValidData('UserTimeZone') && $form->UserTimeZone != '') {
            $userData->time_zone = $form->UserTimeZone;
            CSCacheAPC::getMem()->setSession('lhc_user_timezone', $userData->time_zone, true);
        } else {
            CSCacheAPC::getMem()->setSession('lhc_user_timezone', '', true);
            $userData->time_zone = '';
        }
        if (erLhcoreClassUser::instance()->hasAccessTo('lhuser', 'changevisibility')) {
            if ($form->hasValidData('UserInvisible') && $form->UserInvisible == true) {
                $userData->invisible_mode = 1;
            } else {
                $userData->invisible_mode = 0;
            }
        }
        if (erLhcoreClassUser::instance()->hasAccessTo('lhuser', 'receivepermissionrequest')) {
            if ($form->hasValidData('ReceivePermissionRequest') && $form->ReceivePermissionRequest == true) {
                $userData->rec_per_req = 1;
            } else {
                $userData->rec_per_req = 0;
            }
        }
        if (erLhcoreClassUser::instance()->hasAccessTo('lhuser', 'changeskypenick')) {
            if ($form->hasValidData('Skype') && $form->Skype != '') {
                $userData->skype = $form->Skype;
            } else {
                $userData->skype = '';
            }
        }
        if ($form->hasValidData('XMPPUsername') && $form->XMPPUsername != '') {
            $userData->xmpp_username = $form->XMPPUsername;
        } else {
            $userData->xmpp_username = '';
        }
        return $Errors;
    }

Usage Example

Example #1
0
        exit;
    }
    $validateVisibilityListData = erLhcoreClassUserValidator::validateVisibilityList();
    erLhcoreClassModelUserSetting::setSetting('enable_pending_list', $validateVisibilityListData['enable_pending_list']);
    erLhcoreClassModelUserSetting::setSetting('enable_active_list', $validateVisibilityListData['enable_active_list']);
    erLhcoreClassModelUserSetting::setSetting('enable_close_list', $validateVisibilityListData['enable_close_list']);
    erLhcoreClassModelUserSetting::setSetting('enable_unread_list', $validateVisibilityListData['enable_unread_list']);
    $tpl->set('account_updated', 'done');
    $tpl->set('tab', 'tab_settings');
}
if (isset($_POST['Update'])) {
    if (!isset($_POST['csfr_token']) || !$currentUser->validateCSFRToken($_POST['csfr_token'])) {
        erLhcoreClassModule::redirect('user/account');
        exit;
    }
    $Errors = erLhcoreClassUserValidator::validateAccount($UserData);
    if (isset($_POST['DeletePhoto'])) {
        $UserData->removeFile();
    }
    $userPhotoErrors = erLhcoreClassUserValidator::validateUserPhoto($UserData);
    if ($userPhotoErrors !== false) {
        $Errors = array_merge($Errors, $userPhotoErrors);
    }
    if (count($Errors) == 0) {
        erLhcoreClassUser::getSession()->update($UserData);
        $tpl->set('account_updated', 'done');
    } else {
        $tpl->set('errors', $Errors);
    }
}
$currentUser = erLhcoreClassUser::instance();