""" Permissions для видео модуля. """ from rest_framework import permissions class IsVideoRoomParticipant(permissions.BasePermission): """ Проверка что пользователь - участник видеокомнаты. """ message = 'Вы не являетесь участником этой видеокомнаты.' def has_object_permission(self, request, view, obj): """Проверка доступа к объекту.""" # Для VideoRoom if hasattr(obj, 'mentor') and hasattr(obj, 'client'): return request.user in [obj.mentor, obj.client] # Для VideoParticipant if hasattr(obj, 'room'): return request.user in [obj.room.mentor, obj.room.client] return False class IsMentorOrReadOnly(permissions.BasePermission): """ Только ментор может редактировать, остальные - только чтение. """ def has_object_permission(self, request, view, obj): """Проверка доступа к объекту.""" # Чтение разрешено всем участникам if request.method in permissions.SAFE_METHODS: if hasattr(obj, 'room'): return request.user in [obj.room.mentor, obj.room.client] return request.user in [obj.mentor, obj.client] # Редактирование только ментору if hasattr(obj, 'room'): return request.user == obj.room.mentor return request.user == obj.mentor