return false;
}
//usually, LDAP attributes are said to be case insensitive. But there are exceptions of course.
- $read = ($members = OC_LDAP::readAttribute($dn_group, $this->ldapGroupMemberAssocAttr))
- || ($members = OC_LDAP::readAttribute($dn_group, strtolower($this->ldapGroupMemberAssocAttr)));
- if(!$read) {
+ $members = OC_LDAP::readAttribute($dn_group, $this->ldapGroupMemberAssocAttr);
+ if(!$members) {
return false;
}
$this->ldapGroupMemberAssocAttr.'='.$uid
));
$groups = OC_LDAP::fetchListOfGroups($filter, array(OC_LDAP::conf('ldapGroupDisplayName'),'dn'));
- if(count($groups) == 0) {
- //usually, LDAP attributes are said to be case insensitive. But there are exceptions... So we try it once more
- $filter = str_replace($this->ldapGroupMemberAssocAttr, strtolower($this->ldapGroupMemberAssocAttr), $filter);
- $groups = OC_LDAP::fetchListOfGroups($filter, array(OC_LDAP::conf('ldapGroupDisplayName'),'dn'));
- }
$userGroups = OC_LDAP::ownCloudGroupNames($groups);
return array_unique($userGroups, SORT_LOCALE_STRING);
return array();
}
- //usually, LDAP attributes are said to be case insensitive. But there are exceptions of course.
- $read = ($members = OC_LDAP::readAttribute($groupDN, $this->ldapGroupMemberAssocAttr))
- || ($members = OC_LDAP::readAttribute($groupDN, strtolower($this->ldapGroupMemberAssocAttr)));
- if(!$read) {
+ $members = OC_LDAP::readAttribute($groupDN, $this->ldapGroupMemberAssocAttr);
+ if(!$members) {
return array();
}
$cr = self::getConnectionResource();
$rr = ldap_read($cr, $dn, 'objectClass=*', array($attr));
$er = ldap_first_entry($cr, $rr);
- $result = ldap_get_attributes($cr, $er);
+ //LDAP attributes are not case sensitive
+ $result = array_change_key_case(ldap_get_attributes($cr, $er));
+ $attr = strtolower($attr);
if(isset($result[$attr]) && $result[$attr]['count'] > 0){
$values = array();
}
$i++;
} else {
- if(isset($item[$attr[0]])) {
- $selection[] = $item[$attr[0]];
+ //tribute to case insensitivity
+ if(!is_array($item)) {
+ continue;
+ }
+ $item = array_change_key_case($item);
+ $key = strtolower($attr[0]);
+
+ if(isset($item[$key])) {
+ $selection[] = $item[$key];
}
}