Do not crash when ldap_dn is defined in additional variables
refs #9950
This commit is contained in:
parent
46f2f71c57
commit
42fb1a174b
|
@ -533,6 +533,11 @@ class LdapUserGroupBackend /*extends LdapRepository*/ implements UserGroupBacken
|
||||||
*/
|
*/
|
||||||
public function getMemberships(User $user)
|
public function getMemberships(User $user)
|
||||||
{
|
{
|
||||||
|
if ($this->groupClass === 'posixGroup') {
|
||||||
|
# Posix group only uses simple user name
|
||||||
|
$userDn = $user->getUsername();
|
||||||
|
} else {
|
||||||
|
# LDAP groups use the complete DN
|
||||||
if (($userDn = $user->getAdditional('ldap_dn')) === null) {
|
if (($userDn = $user->getAdditional('ldap_dn')) === null) {
|
||||||
$userQuery = $this->ds
|
$userQuery = $this->ds
|
||||||
->select()
|
->select()
|
||||||
|
@ -544,12 +549,7 @@ class LdapUserGroupBackend /*extends LdapRepository*/ implements UserGroupBacken
|
||||||
$userQuery->where(new Expression($this->userFilter));
|
$userQuery->where(new Expression($this->userFilter));
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($this->groupClass === 'posixGroup') {
|
if (($userDn = $userQuery->fetchDn()) === null) {
|
||||||
# Posix group only uses simple user name
|
|
||||||
$queryUsername = $user->getUsername();
|
|
||||||
} else {
|
|
||||||
# LDAP groups use the complete DN
|
|
||||||
if (($queryUsername = $userQuery->fetchDn()) === null) {
|
|
||||||
return array();
|
return array();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -558,7 +558,7 @@ class LdapUserGroupBackend /*extends LdapRepository*/ implements UserGroupBacken
|
||||||
$groupQuery = $this->ds
|
$groupQuery = $this->ds
|
||||||
->select()
|
->select()
|
||||||
->from($this->groupClass, array($this->groupNameAttribute))
|
->from($this->groupClass, array($this->groupNameAttribute))
|
||||||
->where($this->groupMemberAttribute, $queryUsername)
|
->where($this->groupMemberAttribute, $userDn)
|
||||||
->setBase($this->groupBaseDn);
|
->setBase($this->groupBaseDn);
|
||||||
if ($this->groupFilter) {
|
if ($this->groupFilter) {
|
||||||
$groupQuery->where(new Expression($this->groupFilter));
|
$groupQuery->where(new Expression($this->groupFilter));
|
||||||
|
|
Loading…
Reference in New Issue