Skip to content

Commit 5ddcb17

Browse files
committed
fix retrieving group members with numerical uids from LDAP
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
1 parent cec8b11 commit 5ddcb17

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

apps/user_ldap/lib/Group_LDAP.php

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,7 @@ public function getDynamicGroupMembers($dnGroup) {
198198
* @param string $dnGroup
199199
* @param array|null &$seen
200200
* @return array|mixed|null
201+
* @throws \OC\ServerNotAvailableException
201202
*/
202203
private function _groupMembers($dnGroup, &$seen = null) {
203204
if ($seen === null) {
@@ -211,26 +212,26 @@ private function _groupMembers($dnGroup, &$seen = null) {
211212
// used extensively in cron job, caching makes sense for nested groups
212213
$cacheKey = '_groupMembers'.$dnGroup;
213214
$groupMembers = $this->access->connection->getFromCache($cacheKey);
214-
if(!is_null($groupMembers)) {
215+
if($groupMembers !== null) {
215216
return $groupMembers;
216217
}
217218
$seen[$dnGroup] = 1;
218219
$members = $this->access->readAttribute($dnGroup, $this->access->connection->ldapGroupMemberAssocAttr,
219220
$this->access->connection->ldapGroupFilter);
220221
if (is_array($members)) {
221-
foreach ($members as $memberDN) {
222-
$allMembers[$memberDN] = 1;
222+
foreach ($members as $member) {
223+
$allMembers[$member] = 1;
223224
$nestedGroups = $this->access->connection->ldapNestedGroups;
224225
if (!empty($nestedGroups)) {
225-
$subMembers = $this->_groupMembers($memberDN, $seen);
226+
$subMembers = $this->_groupMembers($member, $seen);
226227
if ($subMembers) {
227-
$allMembers = array_merge($allMembers, $subMembers);
228+
$allMembers += $subMembers;
228229
}
229230
}
230231
}
231232
}
232233

233-
$allMembers = array_merge($allMembers, $this->getDynamicGroupMembers($dnGroup));
234+
$allMembers += $this->getDynamicGroupMembers($dnGroup);
234235

235236
$this->access->connection->writeToCache($cacheKey, $allMembers);
236237
return $allMembers;

0 commit comments

Comments
 (0)