[session] use tx.data directly in session code.
authorPierre-Yves David <pierre-yves.david@logilab.fr>
Fri, 22 Mar 2013 20:14:08 +0100
changeset 8780 d3e49fc74e79
parent 8779 9b2f68916474
child 8781 f1a5792dd8a3
[session] use tx.data directly in session code.
server/session.py
--- a/server/session.py	Fri Mar 22 20:11:17 2013 +0100
+++ b/server/session.py	Fri Mar 22 20:14:08 2013 +0100
@@ -453,9 +453,9 @@
         # share pending_operations, else operation added in the hi-jacked
         # session such as SendMailOp won't ever be processed
         tx.pending_operations = self.pending_operations
-        # everything in transaction_data should be copied back but the entity
+        # everything in tx.data should be copied back but the entity
         # type cache we don't want to avoid security pb
-        tx.data = self.transaction_data.copy()
+        tx.data = self._tx.data.copy()
         tx.data.pop('ecache', None)
         return session
 
@@ -605,13 +605,13 @@
         """return True if the entity of the given eid is being deleted in the
         current transaction
         """
-        return eid in self.transaction_data.get('pendingeids', ())
+        return eid in self._tx.data.get('pendingeids', ())
 
     def added_in_transaction(self, eid):
         """return True if the entity of the given eid is being created in the
         current transaction
         """
-        return eid in self.transaction_data.get('neweids', ())
+        return eid in self._tx.data.get('neweids', ())
 
     def rtype_eids_rdef(self, rtype, eidfrom, eidto):
         # use type_and_source_from_eid instead of type_from_eid for optimization
@@ -921,14 +921,14 @@
     def _touch(self):
         """update latest session usage timestamp and reset mode to read"""
         self.timestamp = time()
-        self.local_perm_cache.clear() # XXX simply move in transaction_data, no?
+        self.local_perm_cache.clear() # XXX simply move in tx.data, no?
 
     # shared data handling ###################################################
 
     def get_shared_data(self, key, default=None, pop=False, txdata=False):
         """return value associated to `key` in session data"""
         if txdata:
-            data = self.transaction_data
+            data = self._tx.data
         else:
             data = self.data
         if pop:
@@ -939,7 +939,7 @@
     def set_shared_data(self, key, value, txdata=False):
         """set value associated to `key` in session data"""
         if txdata:
-            self.transaction_data[key] = value
+            self._tx.data[key] = value
         else:
             self.data[key] = value
 
@@ -962,22 +962,22 @@
         #     may be an acceptable risk. Anyway we could activate it or not
         #     according to a configuration option
         try:
-            self.transaction_data['ecache'].setdefault(entity.eid, entity)
+            self._tx.data['ecache'].setdefault(entity.eid, entity)
         except KeyError:
-            self.transaction_data['ecache'] = ecache = {}
+            self._tx.data['ecache'] = ecache = {}
             ecache[entity.eid] = entity
 
     def entity_cache(self, eid):
-        return self.transaction_data['ecache'][eid]
+        return self._tx.data['ecache'][eid]
 
     def cached_entities(self):
-        return self.transaction_data.get('ecache', {}).values()
+        return self._tx.data.get('ecache', {}).values()
 
     def drop_entity_cache(self, eid=None):
         if eid is None:
-            self.transaction_data.pop('ecache', None)
+            self._tx.data.pop('ecache', None)
         else:
-            del self.transaction_data['ecache'][eid]
+            del self._tx.data['ecache'][eid]
 
     def from_controller(self):
         """return the id (string) of the controller issuing the request (no
@@ -1221,17 +1221,17 @@
 
     def transaction_uuid(self, set=True):
         try:
-            return self.transaction_data['tx_uuid']
+            return self._tx.data['tx_uuid']
         except KeyError:
             if not set:
                 return
-            self.transaction_data['tx_uuid'] = uuid = uuid4().hex
+            self._tx.data['tx_uuid'] = uuid = uuid4().hex
             self.repo.system_source.start_undoable_transaction(self, uuid)
             return uuid
 
     def transaction_inc_action_counter(self):
-        num = self.transaction_data.setdefault('tx_action_count', 0) + 1
-        self.transaction_data['tx_action_count'] = num
+        num = self._tx.data.setdefault('tx_action_count', 0) + 1
+        self._tx.data['tx_action_count'] = num
         return num
 
     # querier helpers #########################################################