public static function validateUser(&$userData, $params = array())
{
$definition = array('Password' => new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::OPTIONAL, 'unsafe_raw'), 'Password1' => new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::OPTIONAL, 'unsafe_raw'), 'Email' => new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::OPTIONAL, 'validate_email'), 'Name' => new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::OPTIONAL, 'unsafe_raw'), 'Surname' => new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::OPTIONAL, 'unsafe_raw'), 'ChatNickname' => new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::OPTIONAL, 'unsafe_raw'), 'Username' => new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::OPTIONAL, 'unsafe_raw'), 'UserDisabled' => new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::OPTIONAL, 'boolean'), 'HideMyStatus' => new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::OPTIONAL, 'boolean'), 'UserInvisible' => new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::OPTIONAL, 'boolean'), 'ReceivePermissionRequest' => new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::OPTIONAL, 'boolean'), 'JobTitle' => new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::OPTIONAL, 'unsafe_raw'), 'UserTimeZone' => new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::OPTIONAL, 'unsafe_raw'), 'DefaultGroup' => new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::OPTIONAL, 'int', null, FILTER_REQUIRE_ARRAY), 'Skype' => new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::OPTIONAL, 'unsafe_raw'), 'XMPPUsername' => new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::OPTIONAL, 'unsafe_raw'));
$form = new ezcInputForm(INPUT_POST, $definition);
$Errors = array();
if (isset($params['user_new']) && $params['user_new'] == true) {
if (!$form->hasValidData('Username') || $form->Username == '') {
$Errors[] = erTranslationClassLhTranslation::getInstance()->getTranslation('user/validator', 'Please enter a username');
} else {
$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->hasValidData('Password') || !$form->hasValidData('Password1') || $form->Password == '' || $form->Password1 == '' || $form->Password != $form->Password1) {
$Errors[] = erTranslationClassLhTranslation::getInstance()->getTranslation('user/validator', 'Passwords mismatch');
} else {
$userData->setPassword($form->Password);
$userData->password_front = $form->Password;
}
} elseif ($params['user_edit'] && $params['user_edit'] == true) {
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;
}
}
} else {
$Errors[] = erTranslationClassLhTranslation::getInstance()->getTranslation('user/validator', 'User action type not set');
}
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;
} else {
$userData->time_zone = '';
}
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 = '';
}
if ($form->hasValidData('UserDisabled') && $form->UserDisabled == true) {
$userData->disabled = 1;
} else {
$userData->disabled = 0;
}
if ($form->hasValidData('HideMyStatus') && $form->HideMyStatus == true) {
$userData->hide_online = 1;
} else {
$userData->hide_online = 0;
}
if ($form->hasValidData('UserInvisible') && $form->UserInvisible == true) {
$userData->invisible_mode = 1;
} else {
$userData->invisible_mode = 0;
}
if ($form->hasValidData('ReceivePermissionRequest') && $form->ReceivePermissionRequest == true) {
$userData->rec_per_req = 1;
} else {
$userData->rec_per_req = 0;
}
if ($form->hasValidData('DefaultGroup')) {
$userData->user_groups_id = $form->DefaultGroup;
} else {
$Errors[] = erTranslationClassLhTranslation::getInstance()->getTranslation('user/validator', 'Please choose a default user group');
}
return $Errors;
}