diff roundup/cgi/client.py @ 4367:fa5587802af9

Handle multiple @action values from broken trackers
author Richard Jones <richard@users.sourceforge.net>
date Sat, 20 Mar 2010 04:29:45 +0000
parents 74476eaac38a
children 3fd24c10c2bb
line wrap: on
line diff
--- a/roundup/cgi/client.py	Mon Mar 08 15:12:42 2010 +0000
+++ b/roundup/cgi/client.py	Sat Mar 20 04:29:45 2010 +0000
@@ -733,12 +733,17 @@
         """
         # allow Anonymous to use the "login" and "register" actions (noting
         # that "register" has its own "Register" permission check)
+
         if ':action' in self.form:
-            action = self.form[':action'].value.lower()
+            action = self.form[':action']
         elif '@action' in self.form:
-            action = self.form['@action'].value.lower()
+            action = self.form['@action']
         else:
-            action = None
+            action = ''
+        if isinstance(action, list):
+            raise SeriousError('broken form: multiple @action values submitted')
+        else:
+            action = action.value.lower()
         if action in ('login', 'register'):
             return
 
@@ -1115,12 +1120,17 @@
             present their messages to the user.
         """
         if ':action' in self.form:
-            action = self.form[':action'].value.lower()
+            action = self.form[':action']
         elif '@action' in self.form:
-            action = self.form['@action'].value.lower()
+            action = self.form['@action']
         else:
             return None
 
+        if isinstance(action, list):
+            raise SeriousError('broken form: multiple @action values submitted')
+        else:
+            action = action.value.lower()
+
         try:
             action_klass = self.get_action_class(action)
 

Roundup Issue Tracker: http://roundup-tracker.org/