diff pylons_app/lib/auth.py @ 374:664a5b8c551a

Added application settings, are now customizable from database fixed all instances of sqlachemy to be removed() after execution.
author Marcin Kuzminski <marcin@python-works.com>
date Wed, 14 Jul 2010 18:31:06 +0200
parents 6484963056cd
children 5bbcc0cac389
line wrap: on
line diff
--- a/pylons_app/lib/auth.py	Wed Jul 14 18:15:37 2010 +0200
+++ b/pylons_app/lib/auth.py	Wed Jul 14 18:31:06 2010 +0200
@@ -47,7 +47,10 @@
 @cache_region('super_short_term', 'cached_user')
 def get_user_cached(username):
     sa = meta.Session
-    user = sa.query(User).filter(User.username == username).one()
+    try:
+        user = sa.query(User).filter(User.username == username).one()
+    finally:
+        meta.Session.remove()
     return user
 
 def authfunc(environ, username, password):
@@ -89,8 +92,12 @@
     @param config:
     """
     log.info('getting information about all available permissions')
-    sa = meta.Session
-    all_perms = sa.query(Permission).all()
+    try:
+        sa = meta.Session
+        all_perms = sa.query(Permission).all()
+    finally:
+        meta.Session.remove()
+    
     config['available_permissions'] = [x.permission_name for x in all_perms]
 
 def set_base_path(config):
@@ -140,7 +147,8 @@
                 p = 'repository.write'
             else:
                 p = perm.Permission.permission_name
-            user.permissions['repositories'][perm.Repo2Perm.repository] = p            
+            user.permissions['repositories'][perm.Repo2Perm.repository] = p
+    meta.Session.remove()         
     return user
     
 def get_user(session):