diff options
author | Carl Schwan <carl@carlschwan.eu> | 2022-10-13 13:44:37 +0200 |
---|---|---|
committer | Carl Schwan <carl@carlschwan.eu> | 2022-10-13 16:19:11 +0200 |
commit | 8c95e46744e03a528a2944cce40e6e189b1c1d0a (patch) | |
tree | e53097be336205b9deb133fbb8c437e8f1b3ac57 /apps/user_status | |
parent | cfdca11ad915ed9e30620fd4f267a1f59401181d (diff) | |
download | nextcloud-server-8c95e46744e03a528a2944cce40e6e189b1c1d0a.tar.gz nextcloud-server-8c95e46744e03a528a2944cce40e6e189b1c1d0a.zip |
Do the filtering on the DB instead
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
Diffstat (limited to 'apps/user_status')
-rw-r--r-- | apps/user_status/lib/Dashboard/UserStatusWidget.php | 3 | ||||
-rw-r--r-- | apps/user_status/lib/Db/UserStatusMapper.php | 13 |
2 files changed, 10 insertions, 6 deletions
diff --git a/apps/user_status/lib/Dashboard/UserStatusWidget.php b/apps/user_status/lib/Dashboard/UserStatusWidget.php index 50cca725a55..5a89040dfa5 100644 --- a/apps/user_status/lib/Dashboard/UserStatusWidget.php +++ b/apps/user_status/lib/Dashboard/UserStatusWidget.php @@ -152,8 +152,7 @@ class UserStatusWidget implements IAPIWidget, IIconWidget, IOptionWidget { $this->service->findAllRecentStatusChanges($limit + 1, 0), static function (UserStatus $status) use ($userId, $since): bool { return $status->getUserId() !== $userId - && ($since === null || $status->getStatusTimestamp() > (int) $since) - && !str_starts_with($status->getUserId(), "_"); + && ($since === null || $status->getStatusTimestamp() > (int) $since); } ), 0, diff --git a/apps/user_status/lib/Db/UserStatusMapper.php b/apps/user_status/lib/Db/UserStatusMapper.php index 4f48ea46818..cb7ad5392db 100644 --- a/apps/user_status/lib/Db/UserStatusMapper.php +++ b/apps/user_status/lib/Db/UserStatusMapper.php @@ -76,10 +76,15 @@ class UserStatusMapper extends QBMapper { ->select('*') ->from($this->tableName) ->orderBy('status_timestamp', 'DESC') - ->where($qb->expr()->notIn('status', $qb->createNamedParameter([IUserStatus::ONLINE, IUserStatus::AWAY, IUserStatus::OFFLINE], IQueryBuilder::PARAM_STR_ARRAY))) - ->orWhere($qb->expr()->isNotNull('message_id')) - ->orWhere($qb->expr()->isNotNull('custom_icon')) - ->orWhere($qb->expr()->isNotNull('custom_message')); + ->where($qb->expr()->andX( + $qb->expr()->orX( + $qb->expr()->notIn('status', $qb->createNamedParameter([IUserStatus::ONLINE, IUserStatus::AWAY, IUserStatus::OFFLINE], IQueryBuilder::PARAM_STR_ARRAY)), + $qb->expr()->isNotNull('message_id'), + $qb->expr()->isNotNull('custom_icon'), + $qb->expr()->isNotNull('custom_message'), + ), + $qb->expr()->notLike('user_id', $qb->createNamedParameter('\_%')) + )); if ($limit !== null) { $qb->setMaxResults($limit); |