Changeset 537


Ignore:
Timestamp:
10/10/08 13:06:46 (5 years ago)
Author:
cbalan
Message:

UserManager?: - Removed CachedSessionAttributeProvider?.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/plugins/usermanagerplugin/tracusermanager/api.py

    r532 r537  
    33# Copyright 2008 Optaros, Inc. 
    44# 
    5 try: 
    6     import threading 
    7 except ImportError: 
    8     import dummy_threading as threading 
    9 import time 
    105 
    116import traceback  
     
    487482            return [] 
    488483 
    489 class CachedSessionAttributeProvider(SessionAttributeProvider): 
    490     CACHE_UPDATE_INTERVAL = 50 
    491      
    492     def __init__(self): 
    493         self._attribute_cache = {} 
    494         self._attribute_cache_last_update = {} 
    495         self._attribute_cache_lock = threading.RLock() 
    496  
    497     def _update_cache(self, username, force=False): 
    498         self._attribute_cache_lock.acquire() 
    499         try: 
    500             now = time.time() 
    501             if now > self._attribute_cache_last_update.get(username,0) + CachedSessionAttributeProvider.CACHE_UPDATE_INTERVAL \ 
    502                     or not self._attribute_cache.has_key(username) \ 
    503                     or force: 
    504                 db = self.env.get_db_cnx() 
    505                 cursor = db.cursor() 
    506                 cursor.execute("SELECT name, value FROM session_attribute WHERE sid=%s",(username,)) 
    507                 self._attribute_cache[username] = {} 
    508                 for name,value in cursor: 
    509                     self._attribute_cache[username][name] = value 
    510                 self._attribute_cache_last_update[username] = now 
    511                 self.log.debug("Updating SessionAttributeProvider attribute cache for user <%s>"%(username,)) 
    512         finally: 
    513             self._attribute_cache_lock.release() 
    514      
    515     def get_user_attribute(self, username, attribute): 
    516         self._update_cache(username) 
    517         if username in self._attribute_cache: 
    518             return self._attribute_cache[username].get(attribute) 
    519         return None 
    520      
    521     def set_user_attribute(self, username, attribute, value): 
    522         return_value = super(CachedSessionAttributeProvider, self).set_user_attribute(username, attribute, value) 
    523         self._update_cache(username, force=True) 
    524         return return_value 
    525          
    526     def delete_user_attribute(self, username, attribute): 
    527         return_value = super(CachedSessionAttributeProvider, self).delete_user_attribute(username, attribute) 
    528         self._update_cache(username, force=True) 
    529         return return_value 
    530  
    531484class EnvironmentFixKnownUsers(Component): 
    532485    implements(IEnvironmentSetupParticipant) 
Note: See TracChangeset for help on using the changeset viewer.