diff rhodecode/model/db.py @ 2065:9ab21c5ddb84 rhodecode-0.0.1.3.2

merge with beta
author Marcin Kuzminski <marcin@python-works.com>
date Tue, 28 Feb 2012 20:21:35 +0200
parents 82a88013a3fd d9ba58526712
children ecd59c28f432
line wrap: on
line diff
--- a/rhodecode/model/db.py	Mon Feb 27 05:14:08 2012 +0200
+++ b/rhodecode/model/db.py	Tue Feb 28 20:21:35 2012 +0200
@@ -44,6 +44,7 @@
 from rhodecode.lib.caching_query import FromCache
 
 from rhodecode.model.meta import Base, Session
+import hashlib
 
 
 log = logging.getLogger(__name__)
@@ -52,6 +53,8 @@
 # BASE CLASSES
 #==============================================================================
 
+_hash_key = lambda k: hashlib.md5(safe_str(k)).hexdigest()
+
 
 class ModelSerializer(json.JSONEncoder):
     """
@@ -337,8 +340,11 @@
             q = cls.query().filter(cls.username == username)
 
         if cache:
-            q = q.options(FromCache("sql_cache_short",
-                                    "get_user_%s" % username))
+            q = q.options(FromCache(
+                            "sql_cache_short",
+                            "get_user_%s" % _hash_key(username)
+                          )
+            )
         return q.scalar()
 
     @classmethod
@@ -394,7 +400,7 @@
         return datetime.date(*self.action_date.timetuple()[:3])
 
     user = relationship('User')
-    repository = relationship('Repository',cascade='')
+    repository = relationship('Repository', cascade='')
 
 
 class UsersGroup(Base, BaseModel):
@@ -406,6 +412,7 @@
     users_group_active = Column("users_group_active", Boolean(), nullable=True, unique=None, default=None)
 
     members = relationship('UsersGroupMember', cascade="all, delete, delete-orphan", lazy="joined")
+    users_group_to_perm = relationship('UsersGroupToPerm', cascade='all')
 
     def __repr__(self):
         return '<userGroup(%s)>' % (self.users_group_name)
@@ -418,8 +425,11 @@
         else:
             q = cls.query().filter(cls.users_group_name == group_name)
         if cache:
-            q = q.options(FromCache("sql_cache_short",
-                                    "get_user_%s" % group_name))
+            q = q.options(FromCache(
+                            "sql_cache_short",
+                            "get_user_%s" % _hash_key(group_name)
+                          )
+            )
         return q.scalar()
 
     @classmethod
@@ -748,8 +758,11 @@
             gr = cls.query()\
                 .filter(cls.group_name == group_name)
         if cache:
-            gr = gr.options(FromCache("sql_cache_short",
-                                          "get_group_%s" % group_name))
+            gr = gr.options(FromCache(
+                            "sql_cache_short",
+                            "get_group_%s" % _hash_key(group_name)
+                            )
+            )
         return gr.scalar()
 
     @property
@@ -1038,7 +1051,7 @@
         prefix = ''
         iid = rhodecode.CONFIG.get('instance_id')
         if iid:
-            prefix = iid 
+            prefix = iid
         return "%s%s" % (prefix, key)
 
     @classmethod