Files
OutFleet/mysite/middleware.py
2024-10-27 01:06:37 +00:00

51 lines
1.7 KiB
Python

from django.urls import resolve
from django.http import Http404, HttpResponseNotFound
class RequestLogger:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
print(f"Original: {request.build_absolute_uri()}")
print(f"Path : {request.path}")
response = self.get_response(request)
return response
from django.contrib.auth import get_user_model
from django.contrib.auth import login
from django.contrib.auth.models import Group
class AutoLoginMiddleware:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
if not request.user.is_authenticated:
user_email = request.META.get('HTTP_X_AUTHENTIK_EMAIL')
user_name = request.META.get('HTTP_X_AUTHENTIK_USERNAME')
user_groups = request.META.get('HTTP_X_AUTHENTIK_GROUPS')
if user_email and user_name:
User = get_user_model()
try:
user = User.objects.get(email=user_email)
except User.DoesNotExist:
user = User.objects.create_user(
username=user_name,
email=user_email
)
if user_groups:
groups_list = user_groups.split(',')
for group_name in groups_list:
group, created = Group.objects.get_or_create(name=group_name.strip())
user.groups.add(group)
login(request, user)
response = self.get_response(request)
return response