server/hook.py
changeset 8626 e2ba137b2bf9
parent 8596 bd4f5052a532
child 8666 1dd655788ece
equal deleted inserted replaced
8625:7ee0752178e5 8626:e2ba137b2bf9
   258 from logilab.common.deprecation import deprecated, class_renamed
   258 from logilab.common.deprecation import deprecated, class_renamed
   259 from logilab.common.logging_ext import set_log_methods
   259 from logilab.common.logging_ext import set_log_methods
   260 from logilab.common.registry import (Predicate, NotPredicate, OrPredicate,
   260 from logilab.common.registry import (Predicate, NotPredicate, OrPredicate,
   261                                      classid, objectify_predicate, yes)
   261                                      classid, objectify_predicate, yes)
   262 
   262 
   263 from cubicweb import RegistryNotFound
   263 from cubicweb import RegistryNotFound, server
   264 from cubicweb.cwvreg import CWRegistry, CWRegistryStore
   264 from cubicweb.cwvreg import CWRegistry, CWRegistryStore
   265 from cubicweb.predicates import ExpectedValuePredicate, is_instance
   265 from cubicweb.predicates import ExpectedValuePredicate, is_instance
   266 from cubicweb.appobject import AppObject
   266 from cubicweb.appobject import AppObject
   267 
   267 
   268 ENTITIES_HOOKS = set(('before_add_entity',    'after_add_entity',
   268 ENTITIES_HOOKS = set(('before_add_entity',    'after_add_entity',
   323             # by default, hooks are executed with security turned off
   323             # by default, hooks are executed with security turned off
   324             with session.security_enabled(read=False):
   324             with session.security_enabled(read=False):
   325                 for _kwargs in _iter_kwargs(entities, eids_from_to, kwargs):
   325                 for _kwargs in _iter_kwargs(entities, eids_from_to, kwargs):
   326                     hooks = sorted(self.filtered_possible_objects(pruned, session, **_kwargs),
   326                     hooks = sorted(self.filtered_possible_objects(pruned, session, **_kwargs),
   327                                    key=lambda x: x.order)
   327                                    key=lambda x: x.order)
       
   328                     debug = server.DEBUG & server.DBG_HOOKS
   328                     with session.security_enabled(write=False):
   329                     with session.security_enabled(write=False):
   329                         for hook in hooks:
   330                         for hook in hooks:
       
   331                             if debug:
       
   332                                 print event, _kwargs, hook
   330                             hook()
   333                             hook()
   331 
   334 
   332     def get_pruned_hooks(self, session, event, entities, eids_from_to, kwargs):
   335     def get_pruned_hooks(self, session, event, entities, eids_from_to, kwargs):
   333         """return a set of hooks that should not be considered by filtered_possible objects
   336         """return a set of hooks that should not be considered by filtered_possible objects
   334 
   337