Merge pull request #17622 from nextcloud/backport/17450/stable16
[stable16] hide strange Everyone and Disabled group numbers with LDAP
This commit is contained in:
commit
6a9acba384
7 changed files with 50 additions and 37 deletions
|
@ -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
|
@ -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') {
|
||||
|
|
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue