1234567891011121314151617181920212223242526 |
- from django.shortcuts import redirect
- from django.utils.deprecation import MiddlewareMixin
- from .auth import (
- is_admin_authorized,
- remove_admin_authorization,
- update_admin_authorization,
- )
- from .views import get_protected_namespace
- from .views.auth import login
- class AdminAuthMiddleware(MiddlewareMixin):
- def process_view(self, request, view_func, view_args, view_kwargs):
- request.admin_namespace = get_protected_namespace(request)
- if request.admin_namespace:
- return self.check_admin_authorization(request)
- def check_admin_authorization(self, request):
- if not is_admin_authorized(request):
- remove_admin_authorization(request)
- if request.resolver_match.url_name == "index":
- return login(request)
- return redirect("%s:index" % request.admin_namespace)
- update_admin_authorization(request)
|