Skip to content
Snippets Groups Projects
Verified Commit fe5e0576 authored by Jonathan Weth's avatar Jonathan Weth :keyboard:
Browse files

Respect setting "view_own_personal_notes" on all places

parent 091caa94
No related branches found
No related tags found
1 merge request!49Resolve "Add rules and permissions"
Pipeline #4056 failed
...@@ -5,6 +5,7 @@ from aleksis.core.util.predicates import ( ...@@ -5,6 +5,7 @@ from aleksis.core.util.predicates import (
has_object_perm, has_object_perm,
has_person, has_person,
is_current_person, is_current_person,
is_site_preference_set,
) )
from .util.predicates import ( from .util.predicates import (
...@@ -55,13 +56,15 @@ edit_lesson_personal_note_predicate = has_person & ( ...@@ -55,13 +56,15 @@ edit_lesson_personal_note_predicate = has_person & (
) )
add_perm("alsijil.edit_lesson_personalnote", edit_lesson_personal_note_predicate) add_perm("alsijil.edit_lesson_personalnote", edit_lesson_personal_note_predicate)
# View personal note # View personal note
view_personal_note_predicate = has_person & ( view_personal_note_predicate = has_person & (
has_global_perm("alsijil.view_personalnote") has_global_perm("alsijil.view_personalnote")
| has_personal_note_group_perm("core.view_personalnote_group") | has_personal_note_group_perm("core.view_personalnote_group")
| is_personal_note_lesson_teacher | 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 | is_personal_note_lesson_parent_group_owner
) )
add_perm("alsijil.view_personalnote", view_personal_note_predicate) add_perm("alsijil.view_personalnote", view_personal_note_predicate)
...@@ -148,7 +151,8 @@ add_perm("alsijil.view_my_groups", view_my_groups_predicate) ...@@ -148,7 +151,8 @@ add_perm("alsijil.view_my_groups", view_my_groups_predicate)
# View person overview # View person overview
view_person_overview_predicate = has_person & ( 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) add_perm("alsijil.view_person_overview", view_person_overview_predicate)
...@@ -161,7 +165,7 @@ view_person_overview_personal_notes_predicate = has_person & ( ...@@ -161,7 +165,7 @@ view_person_overview_personal_notes_predicate = has_person & (
has_global_perm("alsijil.view_personalnote") has_global_perm("alsijil.view_personalnote")
| has_person_group_object_perm("core.view_personalnote_group") | has_person_group_object_perm("core.view_personalnote_group")
| is_person_primary_group_owner | is_person_primary_group_owner
| is_current_person | (is_current_person & is_site_preference_set("alsijil", "view_own_personal_notes"))
) )
add_perm( add_perm(
"alsijil.view_person_overview_personalnote", "alsijil.view_person_overview_personalnote",
......
...@@ -7,7 +7,6 @@ from rules import predicate ...@@ -7,7 +7,6 @@ from rules import predicate
from aleksis.apps.chronos.models import LessonPeriod from aleksis.apps.chronos.models import LessonPeriod
from aleksis.core.models import Group, Person 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 aleksis.core.util.predicates import check_object_permission
from ..models import PersonalNote from ..models import PersonalNote
...@@ -166,15 +165,10 @@ def is_own_personal_note(user: User, obj: PersonalNote) -> bool: ...@@ -166,15 +165,10 @@ def is_own_personal_note(user: User, obj: PersonalNote) -> bool:
"""Predicate for users referred to in a personal note """Predicate for users referred to in a personal note
Checks whether the user referred to in a PersonalNote is the active user. Checks whether the user referred to in a PersonalNote is the active user.
Is configurable via dynamic preferences.
""" """
if hasattr(obj, "person"): if hasattr(obj, "person") and obj.person is user.person:
if ( return True
get_site_preferences()["alsijil__view_own_personal_notes"] return False
and obj.person is user.person
):
return True
return False
@predicate @predicate
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment