diff --git a/aleksis/core/util/predicates.py b/aleksis/core/util/predicates.py index f57b55620e2f7d32136f7b96c1fc869e245ca757..da099c3a948d5ab05c36803922b61bd8b6a743d5 100644 --- a/aleksis/core/util/predicates.py +++ b/aleksis/core/util/predicates.py @@ -8,6 +8,7 @@ from guardian.shortcuts import get_objects_for_user from rules import predicate from ..models import Group +from .core_helpers import get_site_preferences from .core_helpers import has_person as has_person_helper @@ -66,6 +67,17 @@ def has_any_object(perm: str, klass): return fn +def is_site_preference_set(section: str, pref: str): + """Check the boolean value of a given site preference.""" + name = f"check_site_preference:{section}__{pref}" + + @predicate(name) + def fn() -> bool: + return bool(get_site_preferences()[f"{section}__{pref}"]) + + return fn + + @predicate def has_person(user: User) -> bool: """Predicate which checks whether a user has a linked person."""