diff --git a/lib/SessionStatistics.php b/lib/SessionStatistics.php index e253d7dd1..d7d8e96c6 100644 --- a/lib/SessionStatistics.php +++ b/lib/SessionStatistics.php @@ -50,15 +50,23 @@ public function getSessionStatistics(): array { 'last3months' => $this->getNumberOfActiveUsers(self::OFFSET_3MONTHS), 'last6months' => $this->getNumberOfActiveUsers(self::OFFSET_6MONTHS), 'lastyear' => $this->getNumberOfActiveUsers(self::OFFSET_1YEAR), + 'total' => $this->getNumberOfUsersLoggedInSince(1), ]; } /** - * get number of active user in a given time span + * Get number of active user in a given time span * * @param int $offset seconds */ private function getNumberOfActiveUsers(int $offset): int { + return $this->getNumberOfUsersLoggedInSince($this->timeFactory->getTime() - $offset); + } + + /** + * Get number of users whose last login is at or after the given timestamp + */ + private function getNumberOfUsersLoggedInSince(int $timestamp): int { $queryBuilder = $this->connection->getQueryBuilder(); $queryBuilder->select($queryBuilder->func()->count('userid')) ->from('preferences') @@ -66,7 +74,7 @@ private function getNumberOfActiveUsers(int $offset): int { ->andWhere($queryBuilder->expr()->eq('configkey', $queryBuilder->createNamedParameter('lastLogin'))) ->andwhere($queryBuilder->expr()->gte( $queryBuilder->expr()->castColumn('configvalue', IQueryBuilder::PARAM_INT), - $queryBuilder->createNamedParameter($this->timeFactory->getTime() - $offset, IQueryBuilder::PARAM_INT), + $queryBuilder->createNamedParameter($timestamp, IQueryBuilder::PARAM_INT), IQueryBuilder::PARAM_INT, )); diff --git a/templates/settings-admin.php b/templates/settings-admin.php index bedd7ddfb..332785a61 100644 --- a/templates/settings-admin.php +++ b/templates/settings-admin.php @@ -280,6 +280,14 @@ function FormatMegabytes(int $byte): string { t('%s%% of all users', [round($_['activeUsers']['last1month'] * 100 / $_['storage']['num_users'], 1)])) ?> + + 0) : ?> +