hooks/syncschema.py
branchstable
changeset 7880 f475a34d0ddc
parent 7879 9aae456abab5
child 8097 7e0d1fb1092d
equal deleted inserted replaced
7879:9aae456abab5 7880:f475a34d0ddc
   802         except KeyError:
   802         except KeyError:
   803             # duh, schema not found, log error and skip operation
   803             # duh, schema not found, log error and skip operation
   804             self.warning('no schema for %s', self.eid)
   804             self.warning('no schema for %s', self.eid)
   805             return
   805             return
   806         perms = list(erschema.action_permissions(self.action))
   806         perms = list(erschema.action_permissions(self.action))
   807         if hasattr(self, 'group_eid'):
   807         if self.group_eid is not None:
   808             perm = self.session.entity_from_eid(self.group_eid).name
   808             perm = self.session.entity_from_eid(self.group_eid).name
   809         else:
   809         else:
   810             perm = erschema.rql_expression(self.expr)
   810             perm = erschema.rql_expression(self.expr)
   811         try:
   811         try:
   812             perms.index(perm)
   812             perms.index(perm)
   836             return
   836             return
   837         if isinstance(erschema, RelationDefinitionSchema) and \
   837         if isinstance(erschema, RelationDefinitionSchema) and \
   838                self.action in ('delete', 'add'): # XXX 3.6.1 migration
   838                self.action in ('delete', 'add'): # XXX 3.6.1 migration
   839             return
   839             return
   840         perms = list(erschema.action_permissions(self.action))
   840         perms = list(erschema.action_permissions(self.action))
   841         if hasattr(self, 'group_eid'):
   841         if self.group_eid is not None:
   842             perm = self.session.entity_from_eid(self.group_eid).name
   842             perm = self.session.entity_from_eid(self.group_eid).name
   843         else:
   843         else:
   844             perm = erschema.rql_expression(self.expr)
   844             perm = erschema.rql_expression(self.expr)
   845         try:
   845         try:
   846             perms.remove(perm)
   846             perms.remove(perm)