Skip to content
Snippets Groups Projects
permissions.py 676 B
Newer Older
Eliot Berriot's avatar
Eliot Berriot committed
from rest_framework.permissions import BasePermission, DjangoModelPermissions


class ConditionalAuthentication(BasePermission):

    def has_permission(self, request, view):
        if settings.API_AUTHENTICATION_REQUIRED:
            return request.user and request.user.is_authenticated
Eliot Berriot's avatar
Eliot Berriot committed


class HasModelPermission(DjangoModelPermissions):
    """
    Same as DjangoModelPermissions, but we pin the model:

        class MyModelPermission(HasModelPermission):
            model = User
    """
    def get_required_permissions(self, method, model_cls):
        return super().get_required_permissions(method, self.model)