Files
bus-manager/busManager/custom_user/middleware.py
T
2024-01-22 12:57:22 +11:00

33 lines
1.1 KiB
Python

from django.conf import settings
from django.shortcuts import redirect
from django.urls import reverse
from .handlers import AuthHandler
class AzureMiddleware:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
public_views = ["auth:login", "auth:logout", "auth:callback"]
public_views.extend(settings.AZURE_AUTH.get("PUBLIC_URLS", []))
public_urls = [reverse(view_name) for view_name in public_views]
public_paths = settings.AZURE_AUTH.get(
"PUBLIC_PATHS", []
) # added to resolve paths
if request.path_info in public_urls:
return self.get_response(request)
# Added to resolve paths that can't be reversed
for path in public_paths:
if request.path_info.startswith(path):
return self.get_response(request)
if AuthHandler(request).get_token_from_cache():
# If the user is authenticated
if request.user.is_authenticated:
return self.get_response(request)
return redirect("auth:login")