$ldapServer = 1;
$dbLdap = \CLdapServer::GetByID($ldapServer);
if ($arLdap = $dbLdap->Fetch()) {
// this is a test connection, thus any parameters other than related to establishing a connection, have no effect here
$ldap = new CLDAP();
$ldap->arFields = array(
"SERVER" => $arLdap['SERVER'],
"PORT" => $arLdap['PORT'],
"ADMIN_LOGIN" => $arLdap['ADMIN_LOGIN'],
"ADMIN_PASSWORD" => $arLdap['ADMIN_PASSWORD'],
"BASE_DN" => $arLdap['BASE_DN'],
"GROUP_FILTER" => $arLdap['GROUP_FILTER'],
"GROUP_ID_ATTR" => $arLdap['GROUP_ID_ATTR'],
"USER_GROUP_ACCESSORY" => $arLdap['USER_GROUP_ACCESSORY'],
"USER_FILTER" => $arLdap['USER_FILTER'],
"~USER_FILTER" => $arLdap['USER_FILTER'],
"USER_ID_ATTR" => $arLdap['USER_ID_ATTR'],
"~USER_ID_ATTR" => $arLdap['USER_ID_ATTR'],
"GROUP_NAME_ATTR" => $arLdap['GROUP_NAME_ATTR'],
"CONVERT_UTF8" => $arLdap['CONVERT_UTF8'],
"MAX_PAGE_SIZE" => $arLdap['MAX_PAGE_SIZE']
);
if (isset($arLdap['CONNECTION_TYPE']))
$ldap->arFields["CONNECTION_TYPE"] = $arLdap['CONNECTION_TYPE'];
if ($ldap->Connect()) {
$ldp = $ldap;
$login = 'shvetsov_n';
$login_field = $login;
$password_field = false;
$ldap->BindAdmin();
$user_filter = "(&".$ldap->arFields["~USER_FILTER"]."(".$ldap->arFields["~USER_ID_ATTR"]."=".$ldap->specialchars($login_field)."))";
$dbLdapUsers = $ldap->Query($user_filter);
if (!$dbLdapUsers)
return false;
if ($arLdapUser = $dbLdapUsers->Fetch()) {
dd($arLdapUser);
if($password_field !== false) // also check auth
{
$user_dn = $arLdapUser['dn'];
if (!$ldap->Bind($user_dn, $password_field))
return false;
}
dd($ldap->GetUserFields($arLdapUser));
}
$ldp->Disconnect();
}
}