diff --git a/aleksis/apps/alsijil/menus.py b/aleksis/apps/alsijil/menus.py index 71ce1d9f119ffbe23dbea6f42dbd40a83811e82a..96ed7ef5ac48927bf16cc11a881314c51fcd486b 100644 --- a/aleksis/apps/alsijil/menus.py +++ b/aleksis/apps/alsijil/menus.py @@ -96,7 +96,7 @@ MENUS = { "validators": [ ( "aleksis.core.util.predicates.permission_validator", - "alsijil.register_absence_rule", + "alsijil.view_register_absence_rule", ), ], }, diff --git a/aleksis/apps/alsijil/rules.py b/aleksis/apps/alsijil/rules.py index b2640b8cfbf2eb8a1874926ee5a5bce2809ef1dd..e9011c6c2b33ed58a21b6412f6c7e366b1b5e49e 100644 --- a/aleksis/apps/alsijil/rules.py +++ b/aleksis/apps/alsijil/rules.py @@ -156,15 +156,20 @@ view_week_personal_notes_predicate = has_person & ( add_perm("alsijil.view_week_personalnote_rule", view_week_personal_notes_predicate) # Register absence -register_absence_predicate = has_person & ( +view_register_absence_predicate = has_person & ( ( is_person_group_owner & is_site_preference_set("alsijil", "register_absence_as_primary_group_owner") ) | has_global_perm("alsijil.register_absence") +) + +register_absence_predicate = has_person & ( + view_register_absence_predicate | has_object_perm("core.register_absence_person") | has_person_group_object_perm("core.register_absence_group") ) +add_perm("alsijil.view_register_absence_rule", view_register_absence_predicate) add_perm("alsijil.register_absence_rule", register_absence_predicate) # View full register for group