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

