mirror of
https://github.com/inventree/InvenTree.git
synced 2025-04-29 20:16:44 +00:00
parent
7ae9586c82
commit
2e4aa8a2fc
@ -2,6 +2,9 @@ from django.shortcuts import HttpResponseRedirect
|
|||||||
from django.urls import reverse_lazy, Resolver404
|
from django.urls import reverse_lazy, Resolver404
|
||||||
from django.shortcuts import redirect
|
from django.shortcuts import redirect
|
||||||
from django.conf.urls import include, url
|
from django.conf.urls import include, url
|
||||||
|
from django.conf import settings
|
||||||
|
from django.contrib.auth.middleware import PersistentRemoteUserMiddleware
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
from rest_framework.authtoken.models import Token
|
from rest_framework.authtoken.models import Token
|
||||||
@ -112,3 +115,16 @@ class CustomAllauthTwoFactorMiddleware(AllauthTwoFactorMiddleware):
|
|||||||
super().process_request(request)
|
super().process_request(request)
|
||||||
except Resolver404:
|
except Resolver404:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class InvenTreeRemoteUserMiddleware(PersistentRemoteUserMiddleware):
|
||||||
|
"""
|
||||||
|
Middleware to check if HTTP-header based auth is enabled and to set it up
|
||||||
|
"""
|
||||||
|
header = settings.REMOTE_LOGIN_HEADER
|
||||||
|
|
||||||
|
def process_request(self, request):
|
||||||
|
if not settings.REMOTE_LOGIN:
|
||||||
|
return
|
||||||
|
|
||||||
|
return super().process_request(request)
|
||||||
|
@ -289,6 +289,7 @@ MIDDLEWARE = CONFIG.get('middleware', [
|
|||||||
'django.middleware.csrf.CsrfViewMiddleware',
|
'django.middleware.csrf.CsrfViewMiddleware',
|
||||||
'corsheaders.middleware.CorsMiddleware',
|
'corsheaders.middleware.CorsMiddleware',
|
||||||
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
||||||
|
'InvenTree.middleware.InvenTreeRemoteUserMiddleware', # Remote / proxy auth
|
||||||
'django_otp.middleware.OTPMiddleware', # MFA support
|
'django_otp.middleware.OTPMiddleware', # MFA support
|
||||||
'InvenTree.middleware.CustomAllauthTwoFactorMiddleware', # Flow control for allauth
|
'InvenTree.middleware.CustomAllauthTwoFactorMiddleware', # Flow control for allauth
|
||||||
'django.contrib.messages.middleware.MessageMiddleware',
|
'django.contrib.messages.middleware.MessageMiddleware',
|
||||||
@ -302,6 +303,7 @@ MIDDLEWARE = CONFIG.get('middleware', [
|
|||||||
MIDDLEWARE.append('error_report.middleware.ExceptionProcessor')
|
MIDDLEWARE.append('error_report.middleware.ExceptionProcessor')
|
||||||
|
|
||||||
AUTHENTICATION_BACKENDS = CONFIG.get('authentication_backends', [
|
AUTHENTICATION_BACKENDS = CONFIG.get('authentication_backends', [
|
||||||
|
'django.contrib.auth.backends.RemoteUserBackend', # proxy login
|
||||||
'django.contrib.auth.backends.ModelBackend',
|
'django.contrib.auth.backends.ModelBackend',
|
||||||
'allauth.account.auth_backends.AuthenticationBackend', # SSO login via external providers
|
'allauth.account.auth_backends.AuthenticationBackend', # SSO login via external providers
|
||||||
])
|
])
|
||||||
@ -853,6 +855,10 @@ ACCOUNT_FORMS = {
|
|||||||
SOCIALACCOUNT_ADAPTER = 'InvenTree.forms.CustomSocialAccountAdapter'
|
SOCIALACCOUNT_ADAPTER = 'InvenTree.forms.CustomSocialAccountAdapter'
|
||||||
ACCOUNT_ADAPTER = 'InvenTree.forms.CustomAccountAdapter'
|
ACCOUNT_ADAPTER = 'InvenTree.forms.CustomAccountAdapter'
|
||||||
|
|
||||||
|
# login settings
|
||||||
|
REMOTE_LOGIN = get_setting('INVENTREE_REMOTE_LOGIN', CONFIG.get('remote_login', False))
|
||||||
|
REMOTE_LOGIN_HEADER = get_setting('INVENTREE_REMOTE_LOGIN_HEADER', CONFIG.get('remote_login_header', 'REMOTE_USER'))
|
||||||
|
|
||||||
# Markdownx configuration
|
# Markdownx configuration
|
||||||
# Ref: https://neutronx.github.io/django-markdownx/customization/
|
# Ref: https://neutronx.github.io/django-markdownx/customization/
|
||||||
MARKDOWNX_MEDIA_PATH = datetime.now().strftime('markdownx/%Y/%m/%d')
|
MARKDOWNX_MEDIA_PATH = datetime.now().strftime('markdownx/%Y/%m/%d')
|
||||||
|
Loading…
x
Reference in New Issue
Block a user