From b41e3f8f081bd1cb3c2fc9b478dfa3f6533b92f7 Mon Sep 17 00:00:00 2001
From: Arthur Schiwon <blizzz@arthur-schiwon.de>
Date: Mon, 7 Oct 2019 18:25:29 +0200
Subject: [PATCH] hide strange Everyone and Disabled group numbers with LDAP,
 fixes 17368

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
---
 .../lib/Controller/UsersController.php        | 57 +++++++++++--------
 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
+					}
 				}
 			}
 
-- 
GitLab