""" Permissions для homework модуля. """ from rest_framework import permissions class IsHomeworkMentor(permissions.BasePermission): """ Проверка что пользователь - ментор задания. """ message = 'Только ментор задания может выполнить это действие.' def has_object_permission(self, request, view, obj): """Проверка доступа к объекту.""" # Для Homework if hasattr(obj, 'mentor'): return obj.mentor == request.user return False class IsSubmissionOwnerOrMentor(permissions.BasePermission): """ Проверка что пользователь - автор решения или ментор задания. """ message = 'У вас нет доступа к этому решению.' def has_object_permission(self, request, view, obj): """Проверка доступа к объекту.""" # Для HomeworkSubmission if hasattr(obj, 'student') and hasattr(obj, 'homework'): # Студент может видеть свои решения if obj.student == request.user: return True # Ментор может видеть решения своих заданий if obj.homework.mentor == request.user: return True return False