diff roundup/cgi/form_parser.py @ 3765:9a00da0f1da9

Fix [SF#1599740]
author Stefan Seefeld <stefan@seefeld.name>
date Thu, 23 Nov 2006 00:44:48 +0000
parents 0119e04886d8
children 9d93653f8dcb
line wrap: on
line diff
--- a/roundup/cgi/form_parser.py	Wed Nov 22 00:09:08 2006 +0000
+++ b/roundup/cgi/form_parser.py	Thu Nov 23 00:44:48 2006 +0000
@@ -526,6 +526,19 @@
                 if got.has_key(entry):
                     required.remove(entry)
 
+            # If a user doesn't have edit permission for a given property,
+            # but the property is already set in the database, we don't
+            # require a value.
+            if not (create or nodeid is None):
+                for entry in required[:]:
+                    if not self.db.security.hasPermission('Edit',
+                                                          self.client.userid,
+                                                          self.classname,
+                                                          entry):
+                        cl = self.db.classes[self.classname]
+                        if cl.get(nodeid, entry) is None:
+                            required.remove(entry)
+            
             # any required values not present?
             if not required:
                 continue

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