Skip to content

Commit 75ecae2

Browse files
authored
Merge pull request #17450 from nextcloud/fix/17368/odd-group-numbers
hide strange Everyone and Disabled group numbers with LDAP
2 parents 7dcf947 + 419bcb3 commit 75ecae2

File tree

7 files changed

+53
-40
lines changed

7 files changed

+53
-40
lines changed

apps/settings/js/vue-6.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

apps/settings/js/vue-6.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

apps/settings/js/vue-settings-apps-users-management.js

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

apps/settings/js/vue-settings-apps-users-management.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

apps/settings/lib/Controller/UsersController.php

Lines changed: 32 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -184,31 +184,38 @@ public function usersList() {
184184
});
185185
}
186186

187-
if ($this->isAdmin) {
188-
$disabledUsers = $isLDAPUsed ? -1 : $this->userManager->countDisabledUsers();
189-
$userCount = $isLDAPUsed ? 0 : array_reduce($this->userManager->countUsers(), function($v, $w) {
190-
return $v + (int)$w;
191-
}, 0);
192-
} else {
193-
// User is subadmin !
194-
// Map group list to names to retrieve the countDisabledUsersOfGroups
195-
$userGroups = $this->groupManager->getUserGroups($user);
196-
$groupsNames = [];
197-
$userCount = 0;
198-
199-
foreach($groups as $key => $group) {
200-
// $userCount += (int)$group['usercount'];
201-
array_push($groupsNames, $group['name']);
202-
// we prevent subadmins from looking up themselves
203-
// so we lower the count of the groups he belongs to
204-
if (array_key_exists($group['id'], $userGroups)) {
205-
$groups[$key]['usercount']--;
206-
$userCount = -1; // we also lower from one the total count
207-
}
208-
};
209-
$userCount += $isLDAPUsed ? 0 : $this->userManager->countUsersOfGroups($groupsInfo->getGroups());
210-
$disabledUsers = $isLDAPUsed ? -1 : $this->userManager->countDisabledUsersOfGroups($groupsNames);
187+
$disabledUsers = -1;
188+
$userCount = 0;
189+
190+
if(!$isLDAPUsed) {
191+
if ($this->isAdmin) {
192+
$disabledUsers = $this->userManager->countDisabledUsers();
193+
$userCount = array_reduce($this->userManager->countUsers(), function($v, $w) {
194+
return $v + (int)$w;
195+
}, 0);
196+
} else {
197+
// User is subadmin !
198+
// Map group list to names to retrieve the countDisabledUsersOfGroups
199+
$userGroups = $this->groupManager->getUserGroups($user);
200+
$groupsNames = [];
201+
202+
foreach($groups as $key => $group) {
203+
// $userCount += (int)$group['usercount'];
204+
array_push($groupsNames, $group['name']);
205+
// we prevent subadmins from looking up themselves
206+
// so we lower the count of the groups he belongs to
207+
if (array_key_exists($group['id'], $userGroups)) {
208+
$groups[$key]['usercount']--;
209+
$userCount -= 1; // we also lower from one the total count
210+
}
211+
};
212+
$userCount += $this->userManager->countUsersOfGroups($groupsInfo->getGroups());
213+
$disabledUsers = $this->userManager->countDisabledUsersOfGroups($groupsNames);
214+
}
215+
216+
$userCount -= $disabledUsers;
211217
}
218+
212219
$disabledUsersGroup = [
213220
'id' => 'disabled',
214221
'name' => 'Disabled users',
@@ -237,7 +244,7 @@ public function usersList() {
237244
$serverData['isAdmin'] = $this->isAdmin;
238245
$serverData['sortGroups'] = $sortGroupsBy;
239246
$serverData['quotaPreset'] = $quotaPreset;
240-
$serverData['userCount'] = $userCount - $disabledUsers;
247+
$serverData['userCount'] = $userCount;
241248
$serverData['languages'] = $languages;
242249
$serverData['defaultLanguage'] = $this->config->getSystemValue('default_language', 'en');
243250
// Settings

apps/settings/src/store/users.js

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ const mutations = {
9898
let group = state.groups.find(groupSearch => groupSearch.id === gid)
9999
let user = state.users.find(user => user.id === userid)
100100
// increase count if user is enabled
101-
if (group && user.enabled) {
101+
if (group && user.enabled && state.userCount > 0) {
102102
group.usercount++
103103
}
104104
let groups = user.groups
@@ -109,7 +109,7 @@ const mutations = {
109109
let group = state.groups.find(groupSearch => groupSearch.id === gid)
110110
let user = state.users.find(user => user.id === userid)
111111
// lower count if user is enabled
112-
if (group && user.enabled) {
112+
if (group && user.enabled && state.userCount > 0) {
113113
group.usercount--
114114
}
115115
let groups = user.groups
@@ -135,12 +135,14 @@ const mutations = {
135135
let user = state.users.find(user => user.id === userid)
136136
user.enabled = enabled
137137
// increment or not
138-
state.groups.find(group => group.id === 'disabled').usercount += enabled ? -1 : 1
139-
state.userCount += enabled ? 1 : -1
140-
user.groups.forEach(group => {
141-
// Increment disabled count
142-
state.groups.find(groupSearch => groupSearch.id === group).disabled += enabled ? -1 : 1
143-
})
138+
if (state.userCount > 0) {
139+
state.groups.find(group => group.id === 'disabled').usercount += enabled ? -1 : 1
140+
state.userCount += enabled ? 1 : -1
141+
user.groups.forEach(group => {
142+
// Increment disabled count
143+
state.groups.find(groupSearch => groupSearch.id === group).disabled += enabled ? -1 : 1
144+
})
145+
}
144146
},
145147
setUserData(state, { userid, key, value }) {
146148
if (key === 'quota') {

apps/settings/src/views/Users.vue

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -283,6 +283,10 @@ export default {
283283
|| disabledGroup.utils.counter === -1) // add disabled if ldap enabled
284284
) {
285285
groups.unshift(disabledGroup)
286+
if (disabledGroup.utils.counter === -1) {
287+
// hides the counter instead of showing -1
288+
delete disabledGroup.utils.counter
289+
}
286290
}
287291
}
288292

0 commit comments

Comments
 (0)