Merge pull request #17450 from nextcloud/fix/17368/odd-group-numbers
hide strange Everyone and Disabled group numbers with LDAP
This commit is contained in:
commit
75ecae28e6
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
|
@ -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;
|
||||
$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',
|
||||
|
@ -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
|
||||
|
|
|
@ -98,7 +98,7 @@ 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) {
|
||||
if (group && user.enabled && state.userCount > 0) {
|
||||
group.usercount++
|
||||
}
|
||||
let groups = user.groups
|
||||
|
@ -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') {
|
||||
|
|
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue