From 961ea376180a1cc29d66509eb04735a9b6617526 Mon Sep 17 00:00:00 2001
From: Jonathan Weth <git@jonathanweth.de>
Date: Sun, 10 Mar 2024 17:57:06 +0100
Subject: [PATCH] Add some rules

---
 aleksis/apps/kolego/rules.py | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/aleksis/apps/kolego/rules.py b/aleksis/apps/kolego/rules.py
index 8708383..40b6d52 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")
 )
-- 
GitLab