From fe5e057685a57a5f7e7418e9ab40d44b08335c12 Mon Sep 17 00:00:00 2001 From: Jonathan Weth <git@jonathanweth.de> Date: Wed, 21 Oct 2020 17:01:14 +0200 Subject: [PATCH] Respect setting "view_own_personal_notes" on all places --- aleksis/apps/alsijil/rules.py | 12 ++++++++---- aleksis/apps/alsijil/util/predicates.py | 12 +++--------- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/aleksis/apps/alsijil/rules.py b/aleksis/apps/alsijil/rules.py index 5e17f1cb7..3e4ccd461 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 b33a9e27e..3bd37b491 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 -- GitLab