mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-04-28 13:03:45 +03:00
27 lines
1.1 KiB
Python
27 lines
1.1 KiB
Python
from django.core.exceptions import ImproperlyConfigured
|
|
|
|
from rest_framework.settings import api_settings
|
|
from rest_framework.views import APIView
|
|
|
|
try:
|
|
from django.contrib.auth.middleware import \
|
|
LoginRequiredMiddleware as DjangoLoginRequiredMiddleware
|
|
except ImportError:
|
|
DjangoLoginRequiredMiddleware = None
|
|
|
|
|
|
if DjangoLoginRequiredMiddleware:
|
|
class LoginRequiredMiddleware(DjangoLoginRequiredMiddleware):
|
|
def process_view(self, request, view_func, view_args, view_kwargs):
|
|
if (
|
|
hasattr(view_func, "cls")
|
|
and issubclass(view_func.cls, APIView)
|
|
):
|
|
if 'rest_framework.permissions.AllowAny' in api_settings.DEFAULT_PERMISSION_CLASSES:
|
|
raise ImproperlyConfigured(
|
|
"You cannot use 'rest_framework.permissions.AllowAny' in `DEFAULT_PERMISSION_CLASSES` "
|
|
"with `LoginRequiredMiddleware`."
|
|
)
|
|
return None
|
|
return super().process_view(request, view_func, view_args, view_kwargs)
|