equal
deleted
inserted
replaced
327 |
327 |
328 _cw may be a request or a server side transaction |
328 _cw may be a request or a server side transaction |
329 """ |
329 """ |
330 creating = kwargs.get('creating') |
330 creating = kwargs.get('creating') |
331 if not creating and self.eid is not None: |
331 if not creating and self.eid is not None: |
332 key = (self.eid, tuple(sorted(kwargs.iteritems()))) |
332 key = (self.eid, tuple(sorted(kwargs.items()))) |
333 try: |
333 try: |
334 return _cw.local_perm_cache[key] |
334 return _cw.local_perm_cache[key] |
335 except KeyError: |
335 except KeyError: |
336 pass |
336 pass |
337 rql, has_perm_defs, keyarg = self.transform_has_permission() |
337 rql, has_perm_defs, keyarg = self.transform_has_permission() |
715 |
715 |
716 orig_check_permission_definitions = RelationDefinitionSchema.check_permission_definitions |
716 orig_check_permission_definitions = RelationDefinitionSchema.check_permission_definitions |
717 def check_permission_definitions(self): |
717 def check_permission_definitions(self): |
718 orig_check_permission_definitions(self) |
718 orig_check_permission_definitions(self) |
719 schema = self.subject.schema |
719 schema = self.subject.schema |
720 for action, groups in self.permissions.iteritems(): |
720 for action, groups in self.permissions.items(): |
721 for group_or_rqlexpr in groups: |
721 for group_or_rqlexpr in groups: |
722 if action == 'read' and \ |
722 if action == 'read' and \ |
723 isinstance(group_or_rqlexpr, RQLExpression): |
723 isinstance(group_or_rqlexpr, RQLExpression): |
724 msg = "can't use rql expression for read permission of %s" |
724 msg = "can't use rql expression for read permission of %s" |
725 raise BadSchemaDefinition(msg % self) |
725 raise BadSchemaDefinition(msg % self) |