Skip to content
Snippets Groups Projects

Resolve "Add predicate that checks for a preference"

Merged Hangzhi Yu requested to merge 247-add-predicate-that-checks-for-a-preference into master
All threads resolved!
@@ -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,19 @@ def has_any_object(perm: str, klass):
return fn
def check_site_preference(section: str, pref: str):
"""Builds predicate which checks the boolean value of a given site preference"""
name = f"check_site_preference:{section}__{pref}"
@predicate(name)
def fn() -> bool:
if isinstance(get_site_preferences()[f"{section}__{pref}"], bool):
return get_site_preferences()[f"{section}__{pref}"]
return False
return fn
@predicate
def has_person(user: User) -> bool:
"""Predicate which checks whether a user has a linked person."""
Loading