ctype = ContentType.objects.get_for_model(self.model)
UserObjectPermission = get_user_obj_perms_model()
GroupObjectPermission = get_group_obj_perms_model()
+ # see https://github.com/paperless-ngx/paperless-ngx/issues/5392, we limit subqueries
+ # to 1 because Postgres doesn't like returning > 1 row, but all we care about is > 0
return (
qs.filter(
owner_id=value,
UserObjectPermission.objects.filter(
content_type=ctype,
object_pk=Cast(OuterRef("pk"), CharField()),
- ).values("user_id"),
+ ).values("user_id")[:1],
),
)
.annotate(
GroupObjectPermission.objects.filter(
content_type=ctype,
object_pk=Cast(OuterRef("pk"), CharField()),
- ).values("group_id"),
+ ).values("group_id")[:1],
),
)
.filter(