static function getAllowedFields(): array
{
static $fields = null;
if ($fields !== null)
{
return $fields;
}
$fields = [
'lastName' => 'LAST_NAME',
'name' => 'NAME',
'secondName' => 'SECOND_NAME',
'login' => 'LOGIN',
'email' => 'EMAIL',
'title' => 'TITLE',
'position', 'WORK_POSITION',
'lastLogin' => 'LAST_LOGIN',
'dateRegister' => 'DATE_REGISTER',
'lastActivityDate' => 'LAST_ACTIVITY_DATE',
'online' => 'IS_ONLINE',
'profession' => 'PERSONAL_PROFESSION',
'www' => 'PERSONAL_WWW',
'birthday' => 'PERSONAL_BIRTHDAY',
'icq' => 'PERSONAL_ICQ',
'phone' => 'PERSONAL_PHONE',
'fax' => 'PERSONAL_FAX',
'mobile' => 'PERSONAL_MOBILE',
'pager' => 'PERSONAL_PAGER',
'street' => 'PERSONAL_STREET',
'city' => 'PERSONAL_CITY',
'state' => 'PERSONAL_STATE',
'zip' => 'PERSONAL_ZIP',
'mailbox' => 'PERSONAL_MAILBOX',
'country' => 'PERSONAL_COUNTRY',
'timeZoneOffset' => 'TIME_ZONE_OFFSET',
'company' => 'WORK_COMPANY',
'workPhone' => 'WORK_PHONE',
'workDepartment' => 'WORK_DEPARTMENT',
'workPosition' => 'WORK_POSITION',
'workCity' => 'WORK_CITY',
'workCountry' => 'WORK_COUNTRY',
'workStreet' => 'WORK_STREET',
'workState' => 'WORK_STATE',
'workZip' => 'WORK_ZIP',
'workMailbox' => 'WORK_MAILBOX',
];
foreach ($fields as $id => $dbName)
{
if (mb_strpos($dbName, 'PERSONAL_') === 0)
{
$fields['personal' . ucfirst($id)] = $dbName;
}
$fields[$dbName] = $dbName;
}
$intranetInstalled = ModuleManager::isModuleInstalled('intranet');
if ($intranetInstalled)
{
$userFields = $GLOBALS['USER_FIELD_MANAGER']->GetUserFields('USER');
$allowedUserFields = [
'ufPhoneInner' => 'UF_PHONE_INNER',
'ufDistrict' => 'UF_DISTRICT',
'ufSkype' => 'UF_SKYPE',
'ufSkypeLink' => 'UF_SKYPE_LINK',
'ufZoom' => 'UF_ZOOM',
'ufTwitter' => 'UF_TWITTER',
'ufFacebook' => 'UF_FACEBOOK',
'ufLinkedin' => 'UF_LINKEDIN',
'ufXing' => 'UF_XING',
'ufWebSites' => 'UF_WEB_SITES',
'ufSkills' => 'UF_SKILLS',
'ufInterests' => 'UF_INTERESTS',
'ufEmploymentDate' => 'UF_EMPLOYMENT_DATE',
];
foreach ($allowedUserFields as $id => $dbName)
{
if (array_key_exists($dbName, $userFields))
{
$fields[$id] = $dbName;
$fields[$dbName] = $dbName;
}
}
}
return $fields;
}