mirror of
https://github.com/nextcloud/server.git
synced 2026-04-27 01:00:20 -04:00
UserManager can now count disabled users
Users page takes advantage of that Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
This commit is contained in:
parent
8f5f26c88d
commit
668fe7df51
4 changed files with 60 additions and 8 deletions
|
|
@ -408,6 +408,28 @@ class Manager extends PublicEmitter implements IUserManager {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* returns how many users have logged in once
|
||||
*
|
||||
* @return int
|
||||
* @since 12.0.0
|
||||
*/
|
||||
public function countDisabledUsers() {
|
||||
$queryBuilder = \OC::$server->getDatabaseConnection()->getQueryBuilder();
|
||||
$queryBuilder->select($queryBuilder->createFunction('COUNT(*)'))
|
||||
->from('preferences')
|
||||
->where($queryBuilder->expr()->eq('appid', $queryBuilder->createNamedParameter('core')))
|
||||
->andWhere($queryBuilder->expr()->eq('configkey', $queryBuilder->createNamedParameter('enabled')))
|
||||
->andWhere($queryBuilder->expr()->eq('configvalue', $queryBuilder->createNamedParameter('false')));
|
||||
|
||||
$query = $queryBuilder->execute();
|
||||
|
||||
$result = (int)$query->fetchColumn();
|
||||
$query->closeCursor();
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* returns how many users have logged in once
|
||||
*
|
||||
|
|
|
|||
|
|
@ -154,6 +154,14 @@ interface IUserManager {
|
|||
*/
|
||||
public function callForAllUsers(\Closure $callback, $search = '');
|
||||
|
||||
/**
|
||||
* returns how many users have logged in once
|
||||
*
|
||||
* @return int
|
||||
* @since 11.0.0
|
||||
*/
|
||||
public function countDisabledUsers();
|
||||
|
||||
/**
|
||||
* returns how many users have logged in once
|
||||
*
|
||||
|
|
|
|||
|
|
@ -45,6 +45,7 @@ $groupManager = \OC::$server->getGroupManager();
|
|||
// Set the sort option: SORT_USERCOUNT or SORT_GROUPNAME
|
||||
$sortGroupsBy = \OC\Group\MetaData::SORT_USERCOUNT;
|
||||
|
||||
$isLDAPUsed = false;
|
||||
if (\OC_App::isEnabled('user_ldap')) {
|
||||
$isLDAPUsed =
|
||||
$groupManager->isBackendUsed('\OCA\User_LDAP\Group_LDAP')
|
||||
|
|
@ -95,17 +96,13 @@ if($isAdmin) {
|
|||
}
|
||||
$subAdmins = false;
|
||||
}
|
||||
$disabledUsers = 0;
|
||||
foreach (OC_User::getUsers() as $uid) {
|
||||
if(!$userManager->get($uid)->isEnabled()) {
|
||||
$disabledUsers++;
|
||||
}
|
||||
}
|
||||
$disabledUsersGroup = array(
|
||||
|
||||
$disabledUsers = $isLDAPUsed ? 0 : $userManager->countDisabledUsers();
|
||||
$disabledUsersGroup = [
|
||||
'id' => '_disabledUsers',
|
||||
'name' => '_disabledUsers',
|
||||
'usercount' => $disabledUsers
|
||||
);
|
||||
];
|
||||
|
||||
// load preset quotas
|
||||
$quotaPreset=$config->getAppValue('files', 'quota_preset', '1 GB, 5 GB, 10 GB');
|
||||
|
|
|
|||
|
|
@ -510,6 +510,31 @@ class ManagerTest extends TestCase {
|
|||
$this->assertEquals(7 + 16, $users);
|
||||
}
|
||||
|
||||
public function testCountUsersOnlyDisabled() {
|
||||
$manager = \OC::$server->getUserManager();
|
||||
// count other users in the db before adding our own
|
||||
$countBefore = $manager->countDisabledUsers();
|
||||
|
||||
//Add test users
|
||||
$user1 = $manager->createUser('testdisabledcount1', 'testdisabledcount1');
|
||||
|
||||
$user2 = $manager->createUser('testdisabledcount2', 'testdisabledcount2');
|
||||
$user2->setEnabled(false);
|
||||
|
||||
$user3 = $manager->createUser('testdisabledcount3', 'testdisabledcount3');
|
||||
|
||||
$user4 = $manager->createUser('testdisabledcount4', 'testdisabledcount4');
|
||||
$user4->setEnabled(false);
|
||||
|
||||
$this->assertEquals($countBefore + 2, $manager->countDisabledUsers());
|
||||
|
||||
//cleanup
|
||||
$user1->delete();
|
||||
$user2->delete();
|
||||
$user3->delete();
|
||||
$user4->delete();
|
||||
}
|
||||
|
||||
public function testCountUsersOnlySeen() {
|
||||
$manager = \OC::$server->getUserManager();
|
||||
// count other users in the db before adding our own
|
||||
|
|
|
|||
Loading…
Reference in a new issue