mirror of
https://github.com/house-of-vanity/OutFleet.git
synced 2025-07-06 17:14:07 +00:00
Trying remote-auth
This commit is contained in:
@ -1,5 +1,6 @@
|
|||||||
from django.urls import resolve
|
from django.urls import resolve
|
||||||
from django.http import Http404, HttpResponseNotFound
|
from django.http import Http404, HttpResponseNotFound
|
||||||
|
from django.contrib.auth.middleware import RemoteUserMiddleware
|
||||||
|
|
||||||
class RequestLogger:
|
class RequestLogger:
|
||||||
def __init__(self, get_response):
|
def __init__(self, get_response):
|
||||||
@ -14,37 +15,5 @@ class RequestLogger:
|
|||||||
return response
|
return response
|
||||||
|
|
||||||
|
|
||||||
from django.contrib.auth import get_user_model
|
class AutoLoginMiddleware(RemoteUserMiddleware):
|
||||||
from django.contrib.auth import login
|
header = "HTTP_X_AUTHENTIK_USERNAME"
|
||||||
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
|
|
||||||
|
@ -109,7 +109,9 @@ INSTALLED_APPS = [
|
|||||||
'vpn',
|
'vpn',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
AUTHENTICATION_BACKENDS = [
|
||||||
|
"django.contrib.auth.backends.RemoteUserBackend",
|
||||||
|
]
|
||||||
|
|
||||||
MIDDLEWARE = [
|
MIDDLEWARE = [
|
||||||
'django.middleware.security.SecurityMiddleware',
|
'django.middleware.security.SecurityMiddleware',
|
||||||
@ -118,10 +120,12 @@ MIDDLEWARE = [
|
|||||||
'django.middleware.common.CommonMiddleware',
|
'django.middleware.common.CommonMiddleware',
|
||||||
'django.middleware.csrf.CsrfViewMiddleware',
|
'django.middleware.csrf.CsrfViewMiddleware',
|
||||||
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
||||||
|
'django.contrib.auth.middleware.RemoteUserMiddleware',
|
||||||
|
'mysite.middleware.AutoLoginMiddleware',
|
||||||
'django.contrib.messages.middleware.MessageMiddleware',
|
'django.contrib.messages.middleware.MessageMiddleware',
|
||||||
'django.middleware.clickjacking.XFrameOptionsMiddleware',
|
'django.middleware.clickjacking.XFrameOptionsMiddleware',
|
||||||
'corsheaders.middleware.CorsMiddleware',
|
'corsheaders.middleware.CorsMiddleware',
|
||||||
#'mysite.middleware.AutoLoginMiddleware',
|
|
||||||
]
|
]
|
||||||
|
|
||||||
ROOT_URLCONF = 'mysite.urls'
|
ROOT_URLCONF = 'mysite.urls'
|
||||||
|
Reference in New Issue
Block a user