diff --git a/aleksis/apps/kolego/rules.py b/aleksis/apps/kolego/rules.py index 87083838a2a37959f79063f0288b7459d7c0671e..40b6d5292c475a5743455008cff472223e347740 100644 --- a/aleksis/apps/kolego/rules.py +++ b/aleksis/apps/kolego/rules.py @@ -1,11 +1,24 @@ import rules +from aleksis.apps.kolego.models.absence import Absence, AbsenceReason from aleksis.core.util.predicates import ( + has_any_object, has_global_perm, has_object_perm, has_person, ) +view_absences_predicate = has_person & ( + has_global_perm("kolego.view_absence") | has_any_object("kolego.view_absence", Absence) +) +rules.add_perm("kolego.view_absences_rule", view_absences_predicate) + +view_absence_predicate = has_person & ( + has_global_perm("kolego.view_absence") | has_object_perm("kolego.view_absence") +) +rules.add_perm("kolego.view_absence_rule", view_absence_predicate) + + edit_absence_predicate = has_person & ( has_global_perm("kolego.change_absence") | has_object_perm("kolego.change_absence") ) @@ -16,6 +29,17 @@ delete_absence_predicate = has_person & ( ) rules.add_perm("kolego.delete_absence_rule", delete_absence_predicate) +view_absencereasons_predicate = has_person & ( + has_global_perm("kolego.view_absencereason") + | has_any_object("kolego.view_absencereason", AbsenceReason) +) +rules.add_perm("kolego.view_absencereasons_rule", view_absencereasons_predicate) + +view_absencereason_predicate = has_person & ( + has_global_perm("kolego.view_absencereason") | has_object_perm("kolego.view_absencereason") +) +rules.add_perm("kolego.view_absencereason_rule", view_absencereason_predicate) + edit_absencereason_predicate = has_person & ( has_global_perm("kolego.change_absencereason") | has_object_perm("kolego.change_absencereason") )