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