Skip to content

Commit da9e7e6

Browse files
committed
Make sure user has edit permission on all properties when creating items.
1 parent e5c148f commit da9e7e6

File tree

1 file changed

+17
-1
lines changed

1 file changed

+17
-1
lines changed

roundup/cgi/actions.py

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -539,9 +539,25 @@ def newItemPermission(self, props, classname=None):
539539
Base behaviour is to check the user can edit this class. No additional
540540
property checks are made.
541541
"""
542+
542543
if not classname :
543544
classname = self.client.classname
544-
return self.hasPermission('Create', classname=classname)
545+
546+
if not self.hasPermission('Create', classname=classname):
547+
return 0
548+
549+
# Check Edit permission for each property, to avoid being able
550+
# to set restricted ones on new item creation
551+
for key in props:
552+
if not self.hasPermission('Edit', classname=classname,
553+
property=key):
554+
# We restrict by default and special-case allowed properties
555+
if key == 'date' or key == 'content':
556+
continue
557+
elif key == 'author' and props[key] == self.userid:
558+
continue
559+
return 0
560+
return 1
545561

546562
class EditItemAction(EditCommon):
547563
def lastUserActivity(self):

0 commit comments

Comments
 (0)