predicates.py
branchstable
changeset 9152 b0155bfd4e17
parent 8872 b638a99ab9cf
child 9157 3e4bef7d514d
equal deleted inserted replaced
9011:810a05fba1a4 9152:b0155bfd4e17
   992         rschema = self._get_rschema(entity)
   992         rschema = self._get_rschema(entity)
   993         if rschema is None:
   993         if rschema is None:
   994             return 0 # relation not supported
   994             return 0 # relation not supported
   995         if self.action:
   995         if self.action:
   996             if self.target_etype is not None:
   996             if self.target_etype is not None:
   997                 rschema = rschema.role_rdef(entity.e_schema, self.target_etype, self.role)
   997                 try:
       
   998                     rschema = rschema.role_rdef(entity.e_schema,
       
   999                                                 self.target_etype, self.role)
       
  1000                 except KeyError:
       
  1001                     return 0
   998             if self.role == 'subject':
  1002             if self.role == 'subject':
   999                 if not rschema.has_perm(entity._cw, self.action, fromeid=entity.eid):
  1003                 if not rschema.has_perm(entity._cw, self.action, fromeid=entity.eid):
  1000                     return 0
  1004                     return 0
  1001             elif not rschema.has_perm(entity._cw, self.action, toeid=entity.eid):
  1005             elif not rschema.has_perm(entity._cw, self.action, toeid=entity.eid):
  1002                 return 0
  1006                 return 0