Fix: respect subpath in logout, share link and auto-login redirects (#14476)

---------

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
This commit is contained in:
authored and GitHub committed 2026-10-18 14:28:15 +00:00
1 parent 961f7fd672
commit 309a4b004d
8 files changed
+106 -7

No files matched your search

+1 -1
View File
@@ -16,7 +16,7 @@ logger = logging.getLogger("paperless.auth")
class AutoLoginMiddleware(MiddlewareMixin):
def process_request(self, request: HttpRequest) -> None:
# Dont use auto-login with token request
if request.path.startswith("/api/token/") and request.method == "POST":
if request.path_info.startswith("/api/token/") and request.method == "POST":
return None
try:
request.user = User.objects.get(
@@ -51,3 +51,21 @@ class TestAutoLoginMiddleware(TestCase):
self._process(request)
self.assertFalse(request.user.is_authenticated)
@override_settings(FORCE_SCRIPT_NAME="/paperless")
def test_token_request_is_not_logged_in_under_subpath(self) -> None:
"""
GIVEN:
- Paperless is served under a subpath
WHEN:
- A token is requested via POST
THEN:
- The request is left anonymous so the posted credentials are used
"""
UserFactory(username="autologin")
request = self.factory.post("/api/token/")
request.user = AnonymousUser()
self._process(request)
self.assertFalse(request.user.is_authenticated)