From c7605872366f2a8e79e77a0cd9c457cbe86cc4c5 Mon Sep 17 00:00:00 2001 From: Tres Seaver <tseaver@agendaless.com> Date: Sat, 22 Jan 2011 02:56:44 +0100 Subject: [PATCH] Allow for reason_header / reason_param to both be blank. --- repoze/who/plugins/redirector.py | 12 +++++++++--- 1 files changed, 9 insertions(+), 3 deletions(-) diff --git a/repoze/who/plugins/redirector.py b/repoze/who/plugins/redirector.py index 906fe47..090de44 100644 --- a/repoze/who/plugins/redirector.py +++ b/repoze/who/plugins/redirector.py @@ -26,6 +26,11 @@ ): self.login_url = login_url self.came_from_param = came_from_param + if ((reason_param is None and reason_header is not None) or + (reason_param is not None and reason_header is None)): + raise ValueError( + "Must supply both 'reason_header' and 'reason_param', " + "or neither one.") self.reason_param = reason_param self.reason_header = reason_header self._login_url_parts = list(urlparse.urlparse(login_url)) @@ -36,9 +41,10 @@ url_parts = self._login_url_parts[:] query = url_parts[4] query_elements = cgi.parse_qs(query) - reason = header_value(app_headers, self.reason_header) - if reason and self.reason_param is not None: - query_elements[self.reason_param] = reason + if self.reason_param is not None: + reason = header_value(app_headers, self.reason_header) + if reason: + query_elements[self.reason_param] = reason if self.came_from_param is not None: query_elements[self.came_from_param] = construct_url(environ) url_parts[4] = urllib.urlencode(query_elements, doseq=True) -- Gitblit v1.9.3