Merge pull request #17622 from nextcloud/backport/17450/stable16

[stable16] hide strange Everyone and Disabled group numbers with LDAP
This commit is contained in:
blizzz 2019-10-22 10:17:21 +02:00 committed by GitHub
commit 6a9acba384
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 50 additions and 37 deletions

View file

@ -187,31 +187,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;
$disabledUsers = -1;
$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);
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',
@ -240,7 +247,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

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -98,8 +98,8 @@ const mutations = {
let group = state.groups.find(groupSearch => groupSearch.id == gid);
let user = state.users.find(user => user.id == userid);
// increase count if user is enabled
if (group && user.enabled) {
group.usercount++;
if (group && user.enabled && state.userCount > 0) {
group.usercount++;
}
let groups = user.groups;
groups.push(gid);
@ -109,7 +109,7 @@ const mutations = {
let group = state.groups.find(groupSearch => groupSearch.id == gid);
let user = state.users.find(user => user.id == userid);
// lower count if user is enabled
if (group && user.enabled) {
if (group && user.enabled && state.userCount > 0) {
group.usercount--;
}
let groups = user.groups;
@ -135,12 +135,14 @@ const mutations = {
let user = state.users.find(user => user.id == userid);
user.enabled = enabled;
// increment or not
state.groups.find(group => group.id == 'disabled').usercount += enabled ? -1 : 1;
state.userCount += enabled ? 1 : -1;
user.groups.forEach(group => {
// Increment disabled count
state.groups.find(groupSearch => groupSearch.id == group).disabled += enabled ? -1 : 1;
});
if (state.userCount > 0) {
state.groups.find(group => group.id === 'disabled').usercount += enabled ? -1 : 1
state.userCount += enabled ? 1 : -1
user.groups.forEach(group => {
// Increment disabled count
state.groups.find(groupSearch => groupSearch.id === group).disabled += enabled ? -1 : 1
})
}
},
setUserData(state, { userid, key, value }) {
if (key === 'quota') {

View file

@ -384,6 +384,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
}
}
}