}
}
+ /**
+ * 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
*
*/
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
*
// 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')
}
$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');
$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