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
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): ...@@ -381,10 +381,23 @@ def is_lesson_event_group_owner(user: User, obj: LessonEvent):
return False 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 @predicate
def can_view_documentation(user: User, obj: Documentation): def can_view_documentation(user: User, obj: Documentation):
"""Predicate which checks if the user is allowed to view a documentation.""" """Predicate which checks if the user is allowed to view a documentation."""
if obj: if obj:
if is_documentation_teacher(user, obj):
return True
if obj.lesson_event: if obj.lesson_event:
return ( return (
is_lesson_event_teacher(user, obj.lesson_event) is_lesson_event_teacher(user, obj.lesson_event)
...@@ -400,6 +413,8 @@ def can_view_documentation(user: User, obj: Documentation): ...@@ -400,6 +413,8 @@ def can_view_documentation(user: User, obj: Documentation):
def can_edit_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.""" """Predicate which checks if the user is allowed to edit or delete a documentation."""
if obj: if obj:
if is_documentation_teacher(user, obj):
return True
if obj.lesson_event: if obj.lesson_event:
return is_lesson_event_teacher(user, obj.lesson_event) | is_lesson_event_group_owner( return is_lesson_event_teacher(user, obj.lesson_event) | is_lesson_event_group_owner(
user, obj.lesson_event 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