diff --git a/CHANGELOG.rst b/CHANGELOG.rst index ea7226c0d59f8d046a77521f785f81d84a24ef58..056214adae1c79e4f121de6d59397cc0dfcb1a24 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -6,6 +6,15 @@ All notable changes to this project will be documented in this file. The format is based on `Keep a Changelog`_, and this project adheres to `Semantic Versioning`_. +Unreleased +---------- + +Fixed +~~~~~ + +* The lesson documentations tab was displayed on overviews for persons who are not teachers. +* Teachers weren't able to edit personal notes of their students in the person overview. + `2.0rc3`_ - 2021-07-20 ---------------------- diff --git a/aleksis/apps/alsijil/rules.py b/aleksis/apps/alsijil/rules.py index 0b418af8cb20cb96a109a4b8e55a16a707e38b6d..ea438b99366a5fcd27fbf70713b50e1a62afa45d 100644 --- a/aleksis/apps/alsijil/rules.py +++ b/aleksis/apps/alsijil/rules.py @@ -189,7 +189,7 @@ add_perm( ) # Edit person overview personal notes -edit_person_overview_personal_notes_predicate = view_person_overview_personal_notes_predicate & ( +edit_person_overview_personal_notes_predicate = view_person_overview_predicate & ( ~is_current_person | has_global_perm("alsijil.edit_personalnote") | has_person_group_object_perm("core.edit_personalnote_group") diff --git a/aleksis/apps/alsijil/views.py b/aleksis/apps/alsijil/views.py index 3999324f22796719df6586dc7a99a38851fda495..93d7cce2e72d6168ce800efa0b9364fc2537ea6b 100644 --- a/aleksis/apps/alsijil/views.py +++ b/aleksis/apps/alsijil/views.py @@ -876,7 +876,9 @@ def overview_person(request: HttpRequest, id_: Optional[int] = None) -> HttpResp context["excuse_types"] = ExcuseType.objects.all() form = PersonOverviewForm(request, request.POST or None, queryset=allowed_personal_notes) - if request.method == "POST": + if request.method == "POST" and request.user.has_perm( + "alsijil.edit_person_overview_personalnote_rule", person + ): if form.is_valid(): with reversion.create_revision(): reversion.set_user(request.user) @@ -957,7 +959,7 @@ def overview_person(request: HttpRequest, id_: Optional[int] = None) -> HttpResp filter_dict["person"] = person context["filter_form"] = filter_form - if request.user.person.is_teacher: + if person.is_teacher: register_objects = generate_list_of_all_register_objects(filter_dict) table = RegisterObjectTable(register_objects) items_per_page = request.user.person.preferences[