summaryrefslogtreecommitdiffstats
path: root/apps/user_status
diff options
context:
space:
mode:
authorCarl Schwan <carl@carlschwan.eu>2022-10-13 13:44:37 +0200
committerCarl Schwan <carl@carlschwan.eu>2022-10-13 16:19:11 +0200
commit8c95e46744e03a528a2944cce40e6e189b1c1d0a (patch)
treee53097be336205b9deb133fbb8c437e8f1b3ac57 /apps/user_status
parentcfdca11ad915ed9e30620fd4f267a1f59401181d (diff)
downloadnextcloud-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.php3
-rw-r--r--apps/user_status/lib/Db/UserStatusMapper.php13
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);