diff options
-rw-r--r-- | apps/settings/lib/Controller/UsersController.php | 57 | ||||
-rw-r--r-- | apps/settings/src/views/Users.vue | 4 |
2 files changed, 36 insertions, 25 deletions
diff --git a/apps/settings/lib/Controller/UsersController.php b/apps/settings/lib/Controller/UsersController.php index aaa4736087e..cb99d1bd74b 100644 --- a/apps/settings/lib/Controller/UsersController.php +++ b/apps/settings/lib/Controller/UsersController.php @@ -184,31 +184,38 @@ class UsersController extends Controller { }); } - if ($this->isAdmin) { - $disabledUsers = $isLDAPUsed ? -1 : $this->userManager->countDisabledUsers(); - $userCount = $isLDAPUsed ? 0 : array_reduce($this->userManager->countUsers(), function($v, $w) { - return $v + (int)$w; - }, 0); - } else { - // User is subadmin ! - // Map group list to names to retrieve the countDisabledUsersOfGroups - $userGroups = $this->groupManager->getUserGroups($user); - $groupsNames = []; - $userCount = 0; - - foreach($groups as $key => $group) { - // $userCount += (int)$group['usercount']; - array_push($groupsNames, $group['name']); - // we prevent subadmins from looking up themselves - // so we lower the count of the groups he belongs to - if (array_key_exists($group['id'], $userGroups)) { - $groups[$key]['usercount']--; - $userCount = -1; // we also lower from one the total count - } - }; - $userCount += $isLDAPUsed ? 0 : $this->userManager->countUsersOfGroups($groupsInfo->getGroups()); - $disabledUsers = $isLDAPUsed ? -1 : $this->userManager->countDisabledUsersOfGroups($groupsNames); + $disabledUsers = -1; + $userCount = 0; + + if(!$isLDAPUsed) { + if ($this->isAdmin) { + $disabledUsers = $this->userManager->countDisabledUsers(); + $userCount = array_reduce($this->userManager->countUsers(), function($v, $w) { + return $v + (int)$w; + }, 0); + } else { + // User is subadmin ! + // Map group list to names to retrieve the countDisabledUsersOfGroups + $userGroups = $this->groupManager->getUserGroups($user); + $groupsNames = []; + + foreach($groups as $key => $group) { + // $userCount += (int)$group['usercount']; + array_push($groupsNames, $group['name']); + // we prevent subadmins from looking up themselves + // so we lower the count of the groups he belongs to + if (array_key_exists($group['id'], $userGroups)) { + $groups[$key]['usercount']--; + $userCount -= 1; // we also lower from one the total count + } + }; + $userCount += $this->userManager->countUsersOfGroups($groupsInfo->getGroups()); + $disabledUsers = $this->userManager->countDisabledUsersOfGroups($groupsNames); + } + + $userCount -= $disabledUsers; } + $disabledUsersGroup = [ 'id' => 'disabled', 'name' => 'Disabled users', @@ -237,7 +244,7 @@ class UsersController extends Controller { $serverData['isAdmin'] = $this->isAdmin; $serverData['sortGroups'] = $sortGroupsBy; $serverData['quotaPreset'] = $quotaPreset; - $serverData['userCount'] = $userCount - $disabledUsers; + $serverData['userCount'] = $userCount; $serverData['languages'] = $languages; $serverData['defaultLanguage'] = $this->config->getSystemValue('default_language', 'en'); // Settings diff --git a/apps/settings/src/views/Users.vue b/apps/settings/src/views/Users.vue index 3c3082fc077..eb52fa4ba16 100644 --- a/apps/settings/src/views/Users.vue +++ b/apps/settings/src/views/Users.vue @@ -283,6 +283,10 @@ export default { || disabledGroup.utils.counter === -1) // add disabled if ldap enabled ) { groups.unshift(disabledGroup) + if (disabledGroup.utils.counter === -1) { + // hides the counter instead of showing -1 + delete disabledGroup.utils.counter + } } } |