equal
deleted
inserted
replaced
187 def set_perms(erschema, permsdict): |
187 def set_perms(erschema, permsdict): |
188 """set permissions on the given erschema according to the permission |
188 """set permissions on the given erschema according to the permission |
189 definition dictionary as built by deserialize_ertype_permissions for a |
189 definition dictionary as built by deserialize_ertype_permissions for a |
190 given erschema's eid |
190 given erschema's eid |
191 """ |
191 """ |
|
192 # reset erschema permissions here to avoid getting yams default anyway |
|
193 erschema.permissions = dict((action, ()) for action in erschema.ACTIONS) |
192 try: |
194 try: |
193 thispermsdict = permsdict[erschema.eid] |
195 thispermsdict = permsdict[erschema.eid] |
194 except KeyError: |
196 except KeyError: |
195 return |
197 return |
196 permissions = erschema.permissions |
|
197 for action, somethings in thispermsdict.iteritems(): |
198 for action, somethings in thispermsdict.iteritems(): |
198 permissions[action] = tuple( |
199 # XXX cw < 3.6.1 bw compat |
|
200 if isinstance(erschema, schemamod.RelationDefinitionSchema) and erschema.final and action == 'add': |
|
201 action = 'update' |
|
202 erschema.permissions[action] = tuple( |
199 isinstance(p, tuple) and erschema.rql_expression(*p) or p |
203 isinstance(p, tuple) and erschema.rql_expression(*p) or p |
200 for p in somethings) |
204 for p in somethings) |
201 |
205 |
202 |
206 |
203 def deserialize_rdef_constraints(session): |
207 def deserialize_rdef_constraints(session): |