diff --git a/aleksis/apps/chronos/models.py b/aleksis/apps/chronos/models.py index 1c309a53f1f88c4c258a6be562afe64cae18a7c9..880b92fcf361c9d690130202747101ad062debdb 100644 --- a/aleksis/apps/chronos/models.py +++ b/aleksis/apps/chronos/models.py @@ -1596,12 +1596,31 @@ class LessonEvent(CalendarEvent): if type_ and obj_id: if request and not ( - check_global_permission(request.user, "chronos.view_all_group_timetables") - or check_global_permission(request.user, "chronos.view_all_person_timetables") - or check_global_permission( - request.user, "chronos.chronos.view_all_room_timetables" + ( + type_ == "GROUP" + and check_global_permission( + request.user, "chronos.view_all_group_timetables" + ) + ) + or ( + type_ == "TEACHER" + or type_ == "PARTICIPANT" + and check_global_permission( + request.user, "chronos.view_all_person_timetables" + ) + ) + or ( + type_ == "ROOM" + and check_global_permission( + request.user, "chronos.chronos.view_all_room_timetables" + ) + ) + or ( + type_ == "COURSE" + and check_global_permission( + request.user, "chronos.view_all_course_timetables" + ) ) - or check_global_permission(request.user, "chronos.view_all_course_timetables") ): # inline import needed to avoid circular import from aleksis.apps.chronos.util.chronos_helpers import get_el_by_pk