uchill/backend/apps/homework/permissions.py

44 lines
1.5 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""
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