Skip to content
Snippets Groups Projects
Commit d9b6daad authored by Hangzhi Yu's avatar Hangzhi Yu
Browse files

Add check if person is documentation teacher in relevant predicates

parent 9ac059b9
No related branches found
No related tags found
2 merge requests!352Draft: Resolve "Add dialog with each lesson's students",!350Resolve "Add simple course book list"
Pipeline #179320 failed
......@@ -381,10 +381,23 @@ def is_lesson_event_group_owner(user: User, obj: LessonEvent):
return False
@predicate
def is_documentation_teacher(user: User, obj: Documentation):
"""Predicate for teachers of a documentation.
Checks whether the person linked to the user is a teacher in the documentation.
"""
if obj:
return user.person in obj.teachers
return False
@predicate
def can_view_documentation(user: User, obj: Documentation):
"""Predicate which checks if the user is allowed to view a documentation."""
if obj:
if is_documentation_teacher(user, obj):
return True
if obj.lesson_event:
return (
is_lesson_event_teacher(user, obj.lesson_event)
......@@ -400,6 +413,8 @@ def can_view_documentation(user: User, obj: Documentation):
def can_edit_documentation(user: User, obj: Documentation):
"""Predicate which checks if the user is allowed to edit or delete a documentation."""
if obj:
if is_documentation_teacher(user, obj):
return True
if obj.lesson_event:
return is_lesson_event_teacher(user, obj.lesson_event) | is_lesson_event_group_owner(
user, obj.lesson_event
......
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