]> git.ipfire.org Git - thirdparty/paperless-ngx.git/commitdiff
fix broken "failed login" signal
authorIgor Rzegocki <igor@rzegocki.pl>
Sat, 3 Jun 2023 08:41:04 +0000 (10:41 +0200)
committerIgor Rzegocki <igor@rzegocki.pl>
Sat, 3 Jun 2023 15:48:17 +0000 (17:48 +0200)
src/paperless/auth.py
src/paperless/signals.py

index ec853743ed5254bba2021eca3547a54c00370046..2285d0526a868e3a439da69391aefc2484ecb69f 100644 (file)
@@ -1,6 +1,6 @@
 from django.conf import settings
 from django.contrib import auth
-from django.contrib.auth.middleware import RemoteUserMiddleware
+from django.contrib.auth.middleware import PersistentRemoteUserMiddleware
 from django.contrib.auth.models import User
 from django.utils.deprecation import MiddlewareMixin
 from rest_framework import authentication
@@ -37,7 +37,7 @@ class AngularApiAuthenticationOverride(authentication.BaseAuthentication):
             return None
 
 
-class HttpRemoteUserMiddleware(RemoteUserMiddleware):
+class HttpRemoteUserMiddleware(PersistentRemoteUserMiddleware):
     """This class allows authentication via HTTP_REMOTE_USER which is set for
     example by certain SSO applications.
     """
index 83ba741930c1199992f9a70dc9683e87c6a80bf1..9dc3383e3868d2df066b181b25ee5a71495b0551 100644 (file)
@@ -12,22 +12,21 @@ def handle_failed_login(sender, credentials, request, **kwargs):
     client_ip, _ = ipware.get_client_ip(
         meta=request.META,
     )
+    username = credentials.get("username") or "anonymous"
 
     if client_ip is None:
         logger.info(
-            f"Login failed for user `{credentials['username']}`."
-            " Unable to determine IP address.",
+            f"Login failed for user `{username}`. Unable to determine IP address.",
         )
     else:
         if client_ip.is_global:
             # We got the client's IP address
             logger.info(
-                f"Login failed for user `{credentials['username']}`"
-                f" from IP `{client_ip}.`",
+                f"Login failed for user `{username}` from IP `{client_ip}.`",
             )
         else:
             # The client's IP address is private
             logger.info(
-                f"Login failed for user `{credentials['username']}`"
+                f"Login failed for user `{username}`"
                 f" from private IP `{client_ip}.`",
             )