mirror of
https://github.com/nextcloud/server.git
synced 2026-06-08 16:26:59 -04:00
fix(webhooks_listeners): Fix SQL requests for oracle
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
This commit is contained in:
parent
7c577c98ef
commit
98dfa50f46
2 changed files with 17 additions and 9 deletions
|
|
@ -168,10 +168,11 @@ class WebhookListenerMapper extends QBMapper {
|
|||
|
||||
$qb->selectDistinct('event')
|
||||
->from($this->getTableName())
|
||||
->where($qb->expr()->in(
|
||||
'user_id_filter',
|
||||
$qb->createNamedParameter(array_unique(['',$userId]), IQueryBuilder::PARAM_STR_ARRAY),
|
||||
));
|
||||
->where($qb->expr()->emptyString('user_id_filter'));
|
||||
|
||||
if ($userId !== '') {
|
||||
$qb->orWhere($qb->expr()->eq('user_id_filter', $qb->createNamedParameter($userId)));
|
||||
}
|
||||
|
||||
$result = $qb->executeQuery();
|
||||
|
||||
|
|
@ -209,13 +210,19 @@ class WebhookListenerMapper extends QBMapper {
|
|||
|
||||
$qb->select('*')
|
||||
->from($this->getTableName())
|
||||
->where($qb->expr()->eq('event', $qb->createNamedParameter($event, IQueryBuilder::PARAM_STR)))
|
||||
->andWhere(
|
||||
$qb->expr()->in(
|
||||
'user_id_filter',
|
||||
$qb->createNamedParameter(array_unique(['',$userId ?? '']), IQueryBuilder::PARAM_STR_ARRAY),
|
||||
->where($qb->expr()->eq('event', $qb->createNamedParameter($event, IQueryBuilder::PARAM_STR)));
|
||||
|
||||
|
||||
if ($userId === '' || $userId === null) {
|
||||
$qb->andWhere($qb->expr()->emptyString('user_id_filter'));
|
||||
} else {
|
||||
$qb->andWhere(
|
||||
$qb->expr()->orX(
|
||||
$qb->expr()->emptyString('user_id_filter'),
|
||||
$qb->expr()->eq('user_id_filter', $qb->createNamedParameter($userId)),
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
return $this->findEntities($qb);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -168,5 +168,6 @@ class WebhookListenerMapperTest extends TestCase {
|
|||
|
||||
$this->assertEquals([$listener1, $listener2], $this->mapper->getByEvent(NodeWrittenEvent::class, 'alice'));
|
||||
$this->assertEquals([$listener2], $this->mapper->getByEvent(NodeWrittenEvent::class, 'otherUser'));
|
||||
$this->assertEquals([$listener2], $this->mapper->getByEvent(NodeWrittenEvent::class));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue