diff options
-rw-r--r-- | lib/private/User/Manager.php | 23 | ||||
-rw-r--r-- | lib/public/IUserManager.php | 5 |
2 files changed, 15 insertions, 13 deletions
diff --git a/lib/private/User/Manager.php b/lib/private/User/Manager.php index 62a7b39be16..8ecf0994a10 100644 --- a/lib/private/User/Manager.php +++ b/lib/private/User/Manager.php @@ -607,18 +607,21 @@ class Manager extends PublicEmitter implements IUserManager { return $count; } - /** - * returns how many users have logged in once - * - * @return int - * @since 11.0.0 - */ - public function countSeenUsers() { + public function countSeenUsers(): int { $queryBuilder = \OC::$server->getDatabaseConnection()->getQueryBuilder(); $queryBuilder->select($queryBuilder->func()->count('*')) - ->from('preferences') - ->where($queryBuilder->expr()->eq('appid', $queryBuilder->createNamedParameter('login'))) - ->andWhere($queryBuilder->expr()->eq('configkey', $queryBuilder->createNamedParameter('lastLogin'))); + ->from('preferences', 'p1') + ->leftJoin('p1', 'preferences', 'p2', $queryBuilder->expr()->andX( + $queryBuilder->expr()->eq('p1.userid', 'p2.userid'), + $queryBuilder->expr()->eq('p2.appid', $queryBuilder->createNamedParameter('core')), + $queryBuilder->expr()->eq('p2.configkey', $queryBuilder->createNamedParameter('enabled')), + )) + ->where($queryBuilder->expr()->eq('p1.appid', $queryBuilder->createNamedParameter('login'))) + ->andWhere($queryBuilder->expr()->eq('p1.configkey', $queryBuilder->createNamedParameter('lastLogin'))) + ->andWhere($queryBuilder->expr()->orX( + $queryBuilder->expr()->isNull('p2.configvalue'), + $queryBuilder->expr()->eq('p2.configvalue', $queryBuilder->createNamedParameter('true'), IQueryBuilder::PARAM_STR), + )); $query = $queryBuilder->execute(); diff --git a/lib/public/IUserManager.php b/lib/public/IUserManager.php index 50eaa9c98b7..f2c96de4ec4 100644 --- a/lib/public/IUserManager.php +++ b/lib/public/IUserManager.php @@ -190,12 +190,11 @@ interface IUserManager { public function countDisabledUsers(); /** - * returns how many users have logged in once + * returns how many enabled users have logged in once * - * @return int * @since 11.0.0 */ - public function countSeenUsers(); + public function countSeenUsers(): int; /** * @param \Closure $callback |