- Модуль: ldap
- Путь к файлу: ~/bitrix/modules/ldap/classes/general/ldap.php
- Класс: CLDAP
- Вызов: CLDAP::OnFindExternalUser
static function OnFindExternalUser($login)
{
$login = (string)$login;
if($login === '')
{
return 0;
}
// Hit cache
static $result = [];
if(isset($result[$login]))
{
return $result[$login];
}
$filter = ["ACTIVE" => "Y"];
$prefix = mb_strpos($login, "\");
if($prefix === false && COption::GetOptionString("ldap", "ntlm_auth_without_prefix", "Y") !== "Y")
{
return 0;
}
if($prefix > 0)
{
$filter["CODE"] = mb_substr($login, 0, $prefix);
$login = mb_substr($login, $prefix + 1);
}
$userId = 0;
$dbServ = CLdapServer::GetList([], $filter);
while($serv = $dbServ->GetNextServer())
{
if($serv->Connect())
{
if($arLdapUser = $serv->FindUser($login))
{
$userId = (int)$serv->SetUser(
$arLdapUser,
(COption::GetOptionString("ldap", "add_user_when_auth", "Y") === "Y")
);
}
$serv->Disconnect();
if($userId > 0)
{
break;
}
}
}
$result[$login] = $userId;
return $userId;
}