from rest_framework.permissions import BasePermission from rest_framework.permissions import SAFE_METHODS class IsStaffOrReadOnly(BasePermission): """ The request is authenticated as a staff, or is a read-only request. """ def has_permission(self, request, view): return request.method in SAFE_METHODS or request.user and request.user.is_staff class IsAuthenticatedOrReadOnly(BasePermission): """ The request is authenticated as a user, or is a read-only request. """ def has_permission(self, request, view): return request.method in SAFE_METHODS or request.user and request.user.is_authenticated class IsStaffOrReadOnlyForAuthenticated(BasePermission): """ The request is authenticated as a staff, or is a read-only request for authenticated. """ def has_permission(self, request, view): return request.user.is_staff or request.method in SAFE_METHODS and request.user.is_authenticated class IsStaffUser(BasePermission): """ The request is authenticated as a staff """ def has_permission(self, request, view): return request.user.is_staff