Mercurial > kallithea
diff rhodecode/lib/auth.py @ 609:c1c1cf772337
moved out sqlalchemy cache from meta to the config files.
added caching query for permissions.
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Tue, 12 Oct 2010 16:39:53 +0200 |
parents | ba7e24cd4786 |
children | 79457e03ef68 |
line wrap: on
line diff
--- a/rhodecode/lib/auth.py Tue Oct 12 13:03:14 2010 +0200 +++ b/rhodecode/lib/auth.py Tue Oct 12 16:39:53 2010 +0200 @@ -27,6 +27,7 @@ from pylons.controllers.util import abort, redirect from rhodecode.lib.utils import get_repo_slug from rhodecode.model import meta +from rhodecode.model.caching_query import FromCache from rhodecode.model.db import User, RepoToPerm, Repository, Permission, \ UserToPerm from sqlalchemy.exc import OperationalError @@ -141,7 +142,9 @@ @param user: """ sa = meta.Session - dbuser = sa.query(User).get(user.user_id) + dbuser = sa.query(User).options(FromCache('sql_cache_short', + 'getuser_%s' % user.user_id))\ + .get(user.user_id) if dbuser: user.username = dbuser.username user.is_admin = dbuser.admin @@ -166,11 +169,14 @@ #=========================================================================== # fetch default permissions #=========================================================================== + default_user = sa.query(User)\ + .options(FromCache('sql_cache_short','getuser_%s' % 'default'))\ + .filter(User.username == 'default').scalar() + default_perms = sa.query(RepoToPerm, Repository, Permission)\ .join((Repository, RepoToPerm.repository_id == Repository.repo_id))\ .join((Permission, RepoToPerm.permission_id == Permission.permission_id))\ - .filter(RepoToPerm.user == sa.query(User).filter(User.username == - 'default').scalar()).all() + .filter(RepoToPerm.user == default_user).all() if user.is_admin: #=======================================================================