diff --git a/src/viur/core/prototypes/list.py b/src/viur/core/prototypes/list.py index 76fc0d58d..a1274c0c5 100644 --- a/src/viur/core/prototypes/list.py +++ b/src/viur/core/prototypes/list.py @@ -200,7 +200,10 @@ def list(self, *args, **kwargs) -> t.Any: # The general access control is made via self.listFilter() if not (query := self.listFilter(skel.all().mergeExternalFilter(kwargs))): - raise errors.Unauthorized() + if current.user.get(): + raise errors.Forbidden() + else: + raise errors.Unauthorized() self._apply_default_order(query) return self.render.list(query.fetch()) diff --git a/src/viur/core/prototypes/tree.py b/src/viur/core/prototypes/tree.py index e61cbced8..b89c1a36b 100644 --- a/src/viur/core/prototypes/tree.py +++ b/src/viur/core/prototypes/tree.py @@ -340,7 +340,10 @@ def list(self, skelType: SkelType, *args, **kwargs) -> t.Any: # The general access control is made via self.listFilter() if not (query := self.listFilter(self.viewSkel(skelType).all().mergeExternalFilter(kwargs))): - raise errors.Unauthorized() + if current.user.get(): + raise errors.Forbidden() + else: + raise errors.Unauthorized() self._apply_default_order(query) return self.render.list(query.fetch())