Fix #3228 - Send full path info instead of just path info and urlencode said path info

This commit is contained in:
dansheps 2019-05-30 10:54:29 -05:00
parent 1e1aba73ef
commit a11b33d214
2 changed files with 4 additions and 1 deletions

View File

@ -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

View File

@ -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)