From a11b33d2144730f451f8fbbebd35c89437a89524 Mon Sep 17 00:00:00 2001 From: dansheps Date: Thu, 30 May 2019 10:54:29 -0500 Subject: [PATCH] Fix #3228 - Send full path info instead of just path info and urlencode said path info --- CHANGELOG.md | 1 + netbox/utilities/middleware.py | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b70c1dde6..d97ea98f3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ ## Bug Fixes +* [#3228](https://github.com/digitalocean/netbox/issues/3228) - Fixed login link retaining query parameters * [#3031](https://github.com/digitalocean/netbox/issues/3031) - Fixed form field population of tags with spaces * [#3132](https://github.com/digitalocean/netbox/issues/3132) - Circuit termination missing from available cable termination types * [#3150](https://github.com/digitalocean/netbox/issues/3150) - Fix formatting of cable length during cable trace diff --git a/netbox/utilities/middleware.py b/netbox/utilities/middleware.py index 4e321ab19..c70be72ed 100644 --- a/netbox/utilities/middleware.py +++ b/netbox/utilities/middleware.py @@ -2,6 +2,7 @@ from django.conf import settings from django.db import ProgrammingError from django.http import Http404, HttpResponseRedirect from django.urls import reverse +import urllib from .views import server_error @@ -22,7 +23,8 @@ class LoginRequiredMiddleware(object): # performs its own authentication. api_path = reverse('api-root') if not request.path_info.startswith(api_path) and request.path_info != settings.LOGIN_URL: - return HttpResponseRedirect('{}?next={}'.format(settings.LOGIN_URL, request.path_info)) + return HttpResponseRedirect('{}?next={}'.format(settings.LOGIN_URL, + urllib.parse.quote(request.get_full_path_info()))) return self.get_response(request)