public function getData($result)
{
$param = array(
"NAME" => $result["User"]["NAME"],
"LAST_NAME" => $result["User"]["LAST_NAME"],
"SECOND_NAME" => $result["User"]["SECOND_NAME"]
);
$fullName = CUser::FormatName(CSite::GetNameFormat(), $param);
$data = [
"NAME" => $result["User"]["NAME"],
"LAST_NAME" => $result["User"]["LAST_NAME"],
"SECOND_NAME" => $result["User"]["SECOND_NAME"],
"FULL_NAME" => $fullName,
"LOGIN" => $result["User"]["LOGIN"],
"WORK_POSITION" => $result["User"]["WORK_POSITION"],
"PERSONAL_BIRTHDAY" => $result["User"]["PERSONAL_BIRTHDAY"],
"PERSONAL_GENDER" => $result["User"]["PERSONAL_GENDER"],
"PERSONAL_WWW" => $result["User"]["PERSONAL_WWW"],
"UF_DEPARTMENT" => $result["User"]["UF_DEPARTMENT"],
"PERSONAL_MOBILE" => $result["User"]["PERSONAL_MOBILE"],
"WORK_PHONE" => $result["User"]["WORK_PHONE"],
"UF_PHONE_INNER" => $result["User"]["UF_PHONE_INNER"],
"PERSONAL_CITY" => $result["User"]["PERSONAL_CITY"],
"EMAIL" => $result["User"]["EMAIL"],
"UF_SKYPE" => $result["User"]["UF_SKYPE"],
"UF_SKYPE_LINK" => $result["User"]["UF_SKYPE_LINK"],
"UF_ZOOM" => $result["User"]["UF_ZOOM"],
"TIME_ZONE" => [
"timeZone" => $result["User"]["TIME_ZONE"],
"autoTimeZone" => $result["User"]["AUTO_TIME_ZONE"]
],
'PERSONAL_COUNTRY' => $result["User"]["PERSONAL_COUNTRY"],
'PERSONAL_FAX' => $result["User"]["PERSONAL_FAX"],
'PERSONAL_MAILBOX' => $result["User"]["PERSONAL_MAILBOX"],
'PERSONAL_PHONE' => $result["User"]["PERSONAL_PHONE"],
'PERSONAL_STATE' => $result["User"]["PERSONAL_STATE"],
'PERSONAL_STREET' => $result["User"]["PERSONAL_STREET"],
'PERSONAL_ZIP' => $result["User"]["PERSONAL_ZIP"],
'WORK_CITY' => $result["User"]["WORK_CITY"],
'WORK_COUNTRY' => $result["User"]["WORK_COUNTRY"],
'WORK_COMPANY' => $result["User"]["WORK_COMPANY"],
'WORK_DEPARTMENT' => $result["User"]["WORK_DEPARTMENT"],
'WORK_PROFILE' => $result["User"]["WORK_PROFILE"],
'PERSONAL_PROFESSION' => $result["User"]["PERSONAL_PROFESSION"],
'DATE_REGISTER' => $result["User"]["DATE_REGISTER"],
'WORK_NOTES' => $result["User"]["WORK_NOTES"],
'LAST_ACTIVITY_DATE' => $result["User"]["LAST_ACTIVITY_DATE"],
'LANGUAGE_ID' => $result["User"]["LANGUAGE_ID"],
];
$userFields = $this->getUserFields();
$userFieldInfos = $this->getUserFieldInfos();
foreach($userFields as $fieldName => $userField)
{
$fieldValue = isset($userField['VALUE']) ? $userField['VALUE'] : '';
$fieldData = isset($userFieldInfos[$fieldName])
? $userFieldInfos[$fieldName] : null;
if(!is_array($fieldData))
{
continue;
}
$isEmptyField = true;
$fieldParams = $fieldData['data']['fieldInfo'];
if((is_string($fieldValue) && $fieldValue !== '')
|| (is_array($fieldValue) && !empty($fieldValue))
)
{
$fieldParams['VALUE'] = $fieldValue;
$isEmptyField = false;
}
$fieldSignature = $this->userFieldDispatcher->getSignature($fieldParams);
if($isEmptyField)
{
$data[$fieldName] = array(
'SIGNATURE' => $fieldSignature,
'IS_EMPTY' => true
);
}
else
{
$data[$fieldName] = array(
'VALUE' => $fieldValue,
'SIGNATURE' => $fieldSignature,
'IS_EMPTY' => false
);
}
}
if (!$result["Permissions"]['edit'] && !empty($result['SettingsFieldsView']))
{
$filterFields = array_column($result['SettingsFieldsView'], 'VALUE');
foreach ($data as $key => $value)
{
if (!in_array($key, $filterFields))
{
if (is_array($value) && isset($value['VALUE']))
{
unset($value['VALUE']);
}
else
{
$value = '';
}
$data[$key] = $value;
}
}
}
return $data;
}