- Модуль: ldap
- Путь к файлу: ~/bitrix/modules/ldap/classes/general/ldap.php
- Класс: CLDAP
- Вызов: CLDAP::getLdapValueByBitrixFieldName
public function getLdapValueByBitrixFieldName($fieldName, $arLdapUser)
{
global $USER_FIELD_MANAGER;
if(!isset($this->arFields["FIELD_MAP"][$fieldName]))
return false;
$attr = $this->arFields["FIELD_MAP"][$fieldName];
$arRes = $USER_FIELD_MANAGER->GetUserFields("USER", 0, LANGUAGE_ID);
$result = false;
if(is_array($arRes[$fieldName]))
{
if($arRes[$fieldName]["MULTIPLE"]=="Y")
{
if (is_array($arLdapUser[mb_strtolower($attr)]))
$result = array_values($arLdapUser[mb_strtolower($attr)]);
else
$result = array($arLdapUser[mb_strtolower($attr)]);
}
else if (!empty($arLdapUser[mb_strtolower($attr)]))
$result = $arLdapUser[mb_strtolower($attr)];
else if (!empty($arRes[$fieldName]['SETTINGS']['DEFAULT_VALUE']))
{
if (is_array($arRes[$fieldName]['SETTINGS']['DEFAULT_VALUE']))
{
if (!empty($arRes[$fieldName]['SETTINGS']['DEFAULT_VALUE']['VALUE']))
$result = $arRes[$fieldName]['SETTINGS']['DEFAULT_VALUE']['VALUE'];
}
else
$result = $arRes[$fieldName]['SETTINGS']['DEFAULT_VALUE'];
}
}
elseif(preg_match("/(.*)&([0-9]+)/", $attr, $arMatch))
{
if(intval($arLdapUser[mb_strtolower($arMatch[1])]) & intval($arMatch[2]))
$result = "N";
else
$result = "Y";
}
elseif ($fieldName == "PERSONAL_PHOTO")
{
if($arLdapUser[mb_strtolower($attr)] == "")
return false;
$fExt = CLdapUtil::GetImgTypeBySignature($arLdapUser[mb_strtolower($attr)][0]);
if(!$fExt)
return false;
$tmpDir = CTempFile::GetDirectoryName();
CheckDirPath($tmpDir);
$fname = "ad_".rand().".".$fExt;
if(!file_put_contents($tmpDir.$fname,$arLdapUser[mb_strtolower($attr)][0]))
return false;
$result = array(
"name" => $fname,
"type" => CFile::GetContentType($tmpDir.$fname),
"tmp_name" => $tmpDir.$fname
);
}
else
$result = $arLdapUser[mb_strtolower($attr)];
if(is_null($result))
$result = false;
return $result;
}