@@ -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