Autologin
Some checks are pending
Docker hub build / docker (push) Waiting to run

This commit is contained in:
A B
2024-10-28 00:06:35 +00:00
parent b6ad6e8578
commit 7cf99af20d
5 changed files with 33 additions and 18 deletions

View File

@ -1,6 +1,5 @@
from django.urls import resolve from django.contrib.auth import authenticate, login
from django.http import Http404, HttpResponseNotFound from django.utils.deprecation import MiddlewareMixin
from django.contrib.auth.middleware import RemoteUserMiddleware
class RequestLogger: class RequestLogger:
def __init__(self, get_response): def __init__(self, get_response):
@ -15,5 +14,9 @@ class RequestLogger:
return response return response
class AutoLoginMiddleware(RemoteUserMiddleware): class AutoLoginMiddleware(MiddlewareMixin):
header = "HTTP_X_AUTHENTIK_USERNAME" def process_request(self, request):
if not request.user.is_authenticated:
user = authenticate(username='admin', password='admin')
if user:
login(request, user)

View File

@ -3,6 +3,7 @@ import os
import environ import environ
from django.core.management.utils import get_random_secret_key from django.core.management.utils import get_random_secret_key
ENV = environ.Env( ENV = environ.Env(
DEBUG=(bool, False) DEBUG=(bool, False)
) )
@ -23,13 +24,6 @@ CELERY_RESULT_EXTENDED = True
AUTH_USER_MODEL = "vpn.User" AUTH_USER_MODEL = "vpn.User"
# CACHES = {
# 'default': {
# 'BACKEND': 'django.core.cache.backends.db.DatabaseCache',
# 'LOCATION': 'cache_table',
# }
# }
DEBUG = ENV('DEBUG') DEBUG = ENV('DEBUG')
ALLOWED_HOSTS = ENV.list('ALLOWED_HOSTS', default=["*"]) ALLOWED_HOSTS = ENV.list('ALLOWED_HOSTS', default=["*"])
@ -109,10 +103,6 @@ INSTALLED_APPS = [
'vpn', 'vpn',
] ]
AUTHENTICATION_BACKENDS = [
"django.contrib.auth.backends.RemoteUserBackend",
]
MIDDLEWARE = [ MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware', 'django.middleware.security.SecurityMiddleware',
'whitenoise.middleware.WhiteNoiseMiddleware', 'whitenoise.middleware.WhiteNoiseMiddleware',
@ -120,7 +110,6 @@ 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', 'mysite.middleware.AutoLoginMiddleware',
'django.contrib.messages.middleware.MessageMiddleware', 'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware',

View File

@ -19,6 +19,11 @@ from .server_plugins import (
OutlineServerAdmin) OutlineServerAdmin)
admin.site.site_title = "VPN Manager"
admin.site.site_header = "VPN Manager"
admin.site.index_title = "OutFleet"
@admin.register(Server) @admin.register(Server)
class ServerAdmin(PolymorphicParentModelAdmin): class ServerAdmin(PolymorphicParentModelAdmin):
base_model = Server base_model = Server

View File

@ -1,6 +1,7 @@
from django.apps import AppConfig from django.apps import AppConfig
from django.contrib.auth import get_user_model
class VPN(AppConfig): class VPN(AppConfig):
default_auto_field = 'django.db.models.BigAutoField' default_auto_field = 'django.db.models.BigAutoField'
name = 'vpn' name = 'vpn'

View File

@ -0,0 +1,17 @@
from django.core.management.base import BaseCommand
from django.contrib.auth import get_user_model
class Command(BaseCommand):
help = 'Create default admin user'
def handle(self, *args, **kwargs):
User = get_user_model()
if not User.objects.filter(username='admin').exists():
User.objects.create_superuser(
username='admin',
password='admin',
email='admin@localhost'
)
self.stdout.write(self.style.SUCCESS('Admin user created'))
else:
self.stdout.write(self.style.WARNING('Admin user already exists'))