Решение проблемы:
Правим файл: ...bitrix/modules/ldap/classes/general/ldap_server.php
var $arFields;
function GetList($arOrder=Array(), $arFilter=Array())
{
global $USER, $DB, $APPLICATION;
$strSql =
"SEL ECT ls.*, ".
" ".$DB->DateToCharFunction("ls.TIMESTAMP_X")." as TIMESTAMP_X, ".
" ".$DB->DateToCharFunction("ls.SYNC_LAST")." as SYNC_LAST ".
- "FR OM b_ldap_server ls ";
+ "FR OM b_ldap_server ls
+ left join b_user on b_user.EXTERNAL_AUTH_ID like concat('LDAP#',ls.ID) ";
...
+ $ntlm_varname_s = trim(COption::GetOptionString('ldap', 'ntlm_varname', 'REMOTE_USER'));
+ $LOGIN_s = $_SERVER[$ntlm_varname_s];
+ if (($pos_s = strpos($LOGIN_s, "\\")) !== false)
+ {
+ $DOMAIN_s = substr($LOGIN_s, 0, $pos_s);
+ $LOGIN_s = substr($LOGIN_s, $pos_s + 1);
+ }
- $strSql .= " WHERE 1=1 ".$strSqlSearch.$strSqlOrder;
+ $strSql .= " WH ERE 1=1 and b_user.login='{$LOGIN_s}' ".$strSqlSearch.$strSqlOrder;
+ //print_r($strSql); //Поможет вывести дебаг запроса.
Собственно просто добавляется еще одна проверка на принадлежность юзера к проверяемому домену.
Прошу разработчиков взять это для исправления в след версиях.
Правим файл: ...bitrix/modules/ldap/classes/general/ldap_server.php
var $arFields;
function GetList($arOrder=Array(), $arFilter=Array())
{
global $USER, $DB, $APPLICATION;
$strSql =
"SEL ECT ls.*, ".
" ".$DB->DateToCharFunction("ls.TIMESTAMP_X")." as TIMESTAMP_X, ".
" ".$DB->DateToCharFunction("ls.SYNC_LAST")." as SYNC_LAST ".
- "FR OM b_ldap_server ls ";
+ "FR OM b_ldap_server ls
+ left join b_user on b_user.EXTERNAL_AUTH_ID like concat('LDAP#',ls.ID) ";
...
+ $ntlm_varname_s = trim(COption::GetOptionString('ldap', 'ntlm_varname', 'REMOTE_USER'));
+ $LOGIN_s = $_SERVER[$ntlm_varname_s];
+ if (($pos_s = strpos($LOGIN_s, "\\")) !== false)
+ {
+ $DOMAIN_s = substr($LOGIN_s, 0, $pos_s);
+ $LOGIN_s = substr($LOGIN_s, $pos_s + 1);
+ }
- $strSql .= " WHERE 1=1 ".$strSqlSearch.$strSqlOrder;
+ $strSql .= " WH ERE 1=1 and b_user.login='{$LOGIN_s}' ".$strSqlSearch.$strSqlOrder;
+ //print_r($strSql); //Поможет вывести дебаг запроса.
Собственно просто добавляется еще одна проверка на принадлежность юзера к проверяемому домену.
Прошу разработчиков взять это для исправления в след версиях.