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."""