From f57c83f3aa4e9f3db3c1246894dd193f70efc128 Mon Sep 17 00:00:00 2001 From: Jonathan Weth <git@jonathanweth.de> Date: Wed, 21 Oct 2020 17:06:59 +0200 Subject: [PATCH] Make configurable if primary group owners can register absences for their groups --- aleksis/apps/alsijil/preferences.py | 10 ++++++++++ aleksis/apps/alsijil/rules.py | 5 ++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/aleksis/apps/alsijil/preferences.py b/aleksis/apps/alsijil/preferences.py index 9958d72d8..d5552c5e0 100644 --- a/aleksis/apps/alsijil/preferences.py +++ b/aleksis/apps/alsijil/preferences.py @@ -24,6 +24,16 @@ class ViewOwnPersonalNotes(BooleanPreference): verbose_name = _("Allow users to view their own personal notes") +@site_preferences_registry.register +class RegisterAbsenceAsPrimaryGroupOwner(BooleanPreference): + section = alsijil + name = "register_absence_as_primary_group_owner" + default = True + verbose_name = _( + "Allow primary group owners to register future absences for students in their groups" + ) + + @site_preferences_registry.register class CarryOverDataToNextPeriods(BooleanPreference): section = alsijil diff --git a/aleksis/apps/alsijil/rules.py b/aleksis/apps/alsijil/rules.py index 3e4ccd461..0e30bebb5 100644 --- a/aleksis/apps/alsijil/rules.py +++ b/aleksis/apps/alsijil/rules.py @@ -129,7 +129,10 @@ register_absence_predicate = has_person & ( has_global_perm("alsijil.register_absence") | has_person_group_object_perm("core.register_absence_group") | has_object_perm("core.register_absence_person") - | is_person_primary_group_owner + | ( + is_person_primary_group_owner + & is_site_preference_set("alsijil", "register_absence_as_primary_group_owner") + ) ) add_perm("alsijil.register_absence", register_absence_predicate) -- GitLab