from rest_framework.permissions import BasePermission, SAFE_METHODS class ReadOnlyOrAuthenticated(BasePermission): def has_permission(self, request, view): return ( request.method in SAFE_METHODS or request.user and request.user.is_authenticated ) class IsOwner(BasePermission): def has_object_permission(self, request, view, obj): return obj.user == request.user def has_permission(self, request, view): return request.user and request.user.is_authenticated