Source code for simple_django_api.permissions
"""
You can writer permission in two ways:
.. code:: python
class LoginRequired:
def __init__(self, view_cls):
self.view_cls = view_cls
def __call__(self, request, **kwargs):
if not request.user.is_authenticated:
raise exceptions.Unauthorized()
.. code:: python
def login_required(view):
def inner(request, **kwargs):
if not request.user.is_authenticated:
raise exceptions.Unauthorized()
return inner
"""
import abc
from . import exceptions
[docs]class BasePermission(abc.ABC):
def __init__(self, view_cls):
self.view = self.view_cls = view_cls
@abc.abstractmethod
def __call__(self, request, **kwargs):
return True
[docs]class LoginRequired(BasePermission):
def __call__(self, request, **kwargs):
if not request.user.is_authenticated:
raise exceptions.Unauthorized()
[docs]class SuperUserRequired(BasePermission):
def __call__(self, request, **kwargs):
if not request.user.is_superuser:
raise exceptions.Forbidden()
[docs]def login_required(view_cls):
def inner(request, **kwargs):
if not request.user.is_authenticated:
raise exceptions.Unauthorized()
return inner