schema.py
changeset 10662 10942ed172de
parent 10661 e6eb0c7c2e98
child 10663 54b8a1f249fb
equal deleted inserted replaced
10661:e6eb0c7c2e98 10662:10942ed172de
   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)