LDAP: only map users within the User Base Tree

This commit is contained in:
Arthur Schiwon 2012-06-19 01:15:58 +02:00
parent 13a9ef36fb
commit 7c6b8475eb
2 changed files with 11 additions and 3 deletions

View File

@ -166,7 +166,9 @@ class OC_GROUP_LDAP extends OC_Group_Backend {
$result[] = OC_LDAP::dn2username($ldap_users[0]); $result[] = OC_LDAP::dn2username($ldap_users[0]);
continue; continue;
} else { } else {
$result[] = OC_LDAP::dn2username($member); if($ocname = OC_LDAP::dn2username($member)){
$result[] = $ocname;
}
} }
} }
if(!$isMemberUid) { if(!$isMemberUid) {

View File

@ -166,11 +166,14 @@ class OC_LDAP {
* @brief returns the internal ownCloud name for the given LDAP DN of the group * @brief returns the internal ownCloud name for the given LDAP DN of the group
* @param $dn the dn of the group object * @param $dn the dn of the group object
* @param $ldapname optional, the display name of the object * @param $ldapname optional, the display name of the object
* @returns string with with the name to use in ownCloud * @returns string with with the name to use in ownCloud, false on DN outside of search DN
* *
* returns the internal ownCloud name for the given LDAP DN of the group * returns the internal ownCloud name for the given LDAP DN of the group
*/ */
static public function dn2groupname($dn, $ldapname = null) { static public function dn2groupname($dn, $ldapname = null) {
if(strrpos($dn, self::ldapBaseGroups) !== (strlen($dn)-strlen(self::ldapBaseGroups)-1)) {
return false;
}
return self::dn2ocname($dn, $ldapname, false); return self::dn2ocname($dn, $ldapname, false);
} }
@ -180,9 +183,12 @@ class OC_LDAP {
* @param $ldapname optional, the display name of the object * @param $ldapname optional, the display name of the object
* @returns string with with the name to use in ownCloud * @returns string with with the name to use in ownCloud
* *
* returns the internal ownCloud name for the given LDAP DN of the user * returns the internal ownCloud name for the given LDAP DN of the user, false on DN outside of search DN
*/ */
static public function dn2username($dn, $ldapname = null) { static public function dn2username($dn, $ldapname = null) {
if(strrpos($dn, self::ldapBaseUsers) !== (strlen($dn)-strlen(self::ldapBaseUsers)-1)) {
return false;
}
return self::dn2ocname($dn, $ldapname, true); return self::dn2ocname($dn, $ldapname, true);
} }