diff --git a/server/szurubooru/search/configs/post_search_config.py b/server/szurubooru/search/configs/post_search_config.py index 8c2b5b9f..9898231c 100644 --- a/server/szurubooru/search/configs/post_search_config.py +++ b/server/szurubooru/search/configs/post_search_config.py @@ -228,6 +228,11 @@ class PostSearchConfig(BaseSearchConfig): ) return query.order_by(model.Post.post_id.desc()) + + @property + def can_list_unsafe(self) -> bool: + return self.user and auth.has_privilege(self.user, "posts:list:unsafe") + @property def id_column(self) -> SaColumn: return model.Post.post_id diff --git a/server/szurubooru/search/executor.py b/server/szurubooru/search/executor.py index a5ef9625..992f1dac 100644 --- a/server/szurubooru/search/executor.py +++ b/server/szurubooru/search/executor.py @@ -93,7 +93,10 @@ class Executor: if token.name == "random": disable_eager_loads = True - key = (id(self.config), hash(search_query), offset, limit) + + can_list_unsafe = getattr(self.config, "can_list_unsafe", False) + + key = (id(self.config), hash(search_query), offset, limit, can_list_unsafe) if cache.has(key): return cache.get(key)