Skip to content
This repository has been archived by the owner on Nov 25, 2020. It is now read-only.

Commit

Permalink
Search user in ldap by using multi-attribute value
Browse files Browse the repository at this point in the history
  • Loading branch information
c12simple committed Nov 14, 2014
1 parent 59cbfa6 commit 1d6df1f
Showing 1 changed file with 21 additions and 4 deletions.
25 changes: 21 additions & 4 deletions core/src/plugins/auth.ldap/class.ldapAuthDriver.php
Expand Up @@ -236,12 +236,30 @@ public function getUserEntries($login = null, $countOnly = false, $offset = -1,
if ($login == null) {
$filter = $this->ldapFilter;
} else {
$searchAttr = $this->ldapUserAttr;
if ($regexpOnSearchAttr && !empty($this->options["LDAP_SEARCHUSER_ATTR"])) {
$searchAttr = $this->options["LDAP_SEARCHUSER_ATTR"];
$searchAttrArray = explode(",", $searchAttr);
}
if ($this->ldapFilter == "") $filter = "(" . $searchAttr . "=" . $login . ")";
else $filter = "(&" . $this->ldapFilter . "(" . $searchAttr . "=" . $login . "))";

if(isset($searchAttrArray)){
if(count($searchAttrArray) > 1){
$searchAttrFilter = "(|";
foreach($searchAttrArray as $attr){
$searchAttrFilter .= "(". $attr . "=" . $login . ")";
}
$searchAttrFilter .= ")";
}
else{
$searchAttrFilter = "(" . $searchAttrArray[0] . "=" . $login . ")";
}

}
else{
$searchAttrFilter = "(" . $this->ldapUserAttr . "=" . $login . ")";
}

if ($this->ldapFilter == "") $filter = $searchAttrFilter;
else $filter = "(&" . $this->ldapFilter . $searchAttrFilter . ")";
}
if (empty($filter)) {
if (!empty($this->dynamicFilter)) $filter = $this->dynamicFilter;
Expand Down Expand Up @@ -861,5 +879,4 @@ public function saveCountToCache($fileContent)
file_put_contents($this->getPluginCacheDir() . DIRECTORY_SEPARATOR . $fileName, serialize($fileContent));
}
}

}

0 comments on commit 1d6df1f

Please sign in to comment.