diff --git a/aleksis/apps/alsijil/rules.py b/aleksis/apps/alsijil/rules.py index 5e17f1cb7c9b75252eb9744a652441d0ca0f08e8..3e4ccd46162123dae4ef039d6657464a976494eb 100644 --- a/aleksis/apps/alsijil/rules.py +++ b/aleksis/apps/alsijil/rules.py @@ -5,6 +5,7 @@ from aleksis.core.util.predicates import ( has_object_perm, has_person, is_current_person, + is_site_preference_set, ) from .util.predicates import ( @@ -55,13 +56,15 @@ edit_lesson_personal_note_predicate = has_person & ( ) add_perm("alsijil.edit_lesson_personalnote", edit_lesson_personal_note_predicate) - # View personal note view_personal_note_predicate = has_person & ( has_global_perm("alsijil.view_personalnote") | has_personal_note_group_perm("core.view_personalnote_group") | is_personal_note_lesson_teacher - | is_own_personal_note + | ( + is_own_personal_note + & is_site_preference_set("alsijil", "view_own_personal_notes") + ) | is_personal_note_lesson_parent_group_owner ) add_perm("alsijil.view_personalnote", view_personal_note_predicate) @@ -148,7 +151,8 @@ add_perm("alsijil.view_my_groups", view_my_groups_predicate) # View person overview view_person_overview_predicate = has_person & ( - is_current_person | is_person_group_owner + (is_current_person & is_site_preference_set("alsijil", "view_own_personal_notes")) + | is_person_group_owner ) add_perm("alsijil.view_person_overview", view_person_overview_predicate) @@ -161,7 +165,7 @@ view_person_overview_personal_notes_predicate = has_person & ( has_global_perm("alsijil.view_personalnote") | has_person_group_object_perm("core.view_personalnote_group") | is_person_primary_group_owner - | is_current_person + | (is_current_person & is_site_preference_set("alsijil", "view_own_personal_notes")) ) add_perm( "alsijil.view_person_overview_personalnote", diff --git a/aleksis/apps/alsijil/util/predicates.py b/aleksis/apps/alsijil/util/predicates.py index b33a9e27e97e06841f33749425669c56dbf863de..3bd37b491bc5f056d7e097407a547b323eed6c32 100644 --- a/aleksis/apps/alsijil/util/predicates.py +++ b/aleksis/apps/alsijil/util/predicates.py @@ -7,7 +7,6 @@ from rules import predicate from aleksis.apps.chronos.models import LessonPeriod from aleksis.core.models import Group, Person -from aleksis.core.util.core_helpers import get_site_preferences from aleksis.core.util.predicates import check_object_permission from ..models import PersonalNote @@ -166,15 +165,10 @@ def is_own_personal_note(user: User, obj: PersonalNote) -> bool: """Predicate for users referred to in a personal note Checks whether the user referred to in a PersonalNote is the active user. - Is configurable via dynamic preferences. """ - if hasattr(obj, "person"): - if ( - get_site_preferences()["alsijil__view_own_personal_notes"] - and obj.person is user.person - ): - return True - return False + if hasattr(obj, "person") and obj.person is user.person: + return True + return False @predicate