UserManager can now count disabled users

Users page takes advantage of that

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
pull/1234/head
Arthur Schiwon 8 years ago committed by Morris Jobke
parent 8f5f26c88d
commit 668fe7df51
No known key found for this signature in database
GPG Key ID: 9CE5ED29E7FCD38A
  1. 22
      lib/private/User/Manager.php
  2. 8
      lib/public/IUserManager.php
  3. 13
      settings/users.php
  4. 25
      tests/lib/User/ManagerTest.php

@ -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…
Cancel
Save