• Модуль: rest
  • Путь к файлу: ~/bitrix/modules/rest/lib/api/user.php
  • Класс: BitrixRestApiUser
  • Вызов: User::prepareSaveData
static function prepareSaveData($userData, $allowedUserFields = null)
{
	global $USER_FIELD_MANAGER;
	$user = array();

	if (!$allowedUserFields)
	{
		$allowedUserFields = static::getDefaultAllowedUserFields();
	}

	$userId = (int) $userData['ID'];

	$fieldsList = $USER_FIELD_MANAGER->getUserFields('USER', $userId, LANGUAGE_ID);

	foreach ($userData as $key => $value)
	{
		if (in_array($key, $allowedUserFields, true))
		{
			if (mb_strpos($key, static::$nameFieldFullPrefix) === 0)
			{
				$user[$key] = static::prepareUserField($fieldsList[$key], $value);
			}
			else
			{
				$user[$key] = $value;
			}
		}
	}


	if (isset($user['ACTIVE']))
		$user['ACTIVE'] = ($user['ACTIVE'] && $user['ACTIVE'] != 'N') ? 'Y' : 'N';

	if (isset($user['PERSONAL_BIRTHDAY']))
		$user['PERSONAL_BIRTHDAY'] = CRestUtil::unConvertDate($user['PERSONAL_BIRTHDAY']);

	if (isset($user['UF_DEPARTMENT']) && !is_array($user['UF_DEPARTMENT']) && !empty($user['UF_DEPARTMENT']))
		$user['UF_DEPARTMENT'] = array($user['UF_DEPARTMENT']);

	if (isset($user['PERSONAL_PHOTO']))
	{
		$user['PERSONAL_PHOTO'] = CRestUtil::saveFile($user['PERSONAL_PHOTO']);

		if (!$user['PERSONAL_PHOTO'])
		{
			$user['PERSONAL_PHOTO'] = array('del' => 'Y');
		}
	}

	$user = array_diff_key($user, array_fill_keys(static::$holdEditFields, 'Y'));

	return $user;
}