cubicweb/server/session.py
changeset 11206 6454ee8f2137
parent 11205 b050cf821ee5
child 11348 70337ad23145
equal deleted inserted replaced
11205:b050cf821ee5 11206:6454ee8f2137
   114         self.cnx.hooks_mode = self.mode
   114         self.cnx.hooks_mode = self.mode
   115         if self.mode is HOOKS_DENY_ALL:
   115         if self.mode is HOOKS_DENY_ALL:
   116             self.changes = self.cnx.enable_hook_categories(*self.categories)
   116             self.changes = self.cnx.enable_hook_categories(*self.categories)
   117         else:
   117         else:
   118             self.changes = self.cnx.disable_hook_categories(*self.categories)
   118             self.changes = self.cnx.disable_hook_categories(*self.categories)
   119         self.cnx.ctx_count += 1
       
   120 
   119 
   121     def __exit__(self, exctype, exc, traceback):
   120     def __exit__(self, exctype, exc, traceback):
   122         self.cnx.ctx_count -= 1
       
   123         try:
   121         try:
   124             if self.categories:
   122             if self.categories:
   125                 if self.mode is HOOKS_DENY_ALL:
   123                 if self.mode is HOOKS_DENY_ALL:
   126                     self.cnx.disable_hook_categories(*self.categories)
   124                     self.cnx.disable_hook_categories(*self.categories)
   127                 else:
   125                 else:
   156         if self.write is None:
   154         if self.write is None:
   157             self.oldwrite = None
   155             self.oldwrite = None
   158         else:
   156         else:
   159             self.oldwrite = self.cnx.write_security
   157             self.oldwrite = self.cnx.write_security
   160             self.cnx.write_security = self.write
   158             self.cnx.write_security = self.write
   161         self.cnx.ctx_count += 1
       
   162 
   159 
   163     def __exit__(self, exctype, exc, traceback):
   160     def __exit__(self, exctype, exc, traceback):
   164         self.cnx.ctx_count -= 1
       
   165         if self.oldread is not None:
   161         if self.oldread is not None:
   166             self.cnx.read_security = self.oldread
   162             self.cnx.read_security = self.oldread
   167         if self.oldwrite is not None:
   163         if self.oldwrite is not None:
   168             self.cnx.write_security = self.oldwrite
   164             self.cnx.write_security = self.oldwrite
   169 
   165 
   257         #: connection unique id
   253         #: connection unique id
   258         self._open = None
   254         self._open = None
   259         self.connectionid = '%s-%s' % (session.sessionid, uuid4().hex)
   255         self.connectionid = '%s-%s' % (session.sessionid, uuid4().hex)
   260         self.session = session
   256         self.session = session
   261         self.sessionid = session.sessionid
   257         self.sessionid = session.sessionid
   262         #: reentrance handling
       
   263         self.ctx_count = 0
       
   264 
   258 
   265         #: server.Repository object
   259         #: server.Repository object
   266         self.repo = session.repo
   260         self.repo = session.repo
   267         self.vreg = self.repo.vreg
   261         self.vreg = self.repo.vreg
   268         self._execute = self.repo.querier.execute
   262         self._execute = self.repo.querier.execute