changeset 423:16253f330094

fixes #30. Rewrite default permissions query + some other small fixes
author Marcin Kuzminski <marcin@python-works.com>
date Wed, 25 Aug 2010 18:15:50 +0200
parents a6000c18a8db
children 55ada111bca6
files pylons_app/lib/auth.py
diffstat 1 files changed, 11 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/pylons_app/lib/auth.py	Sat Aug 21 18:33:13 2010 +0200
+++ b/pylons_app/lib/auth.py	Wed Aug 25 18:15:50 2010 +0200
@@ -141,16 +141,15 @@
     #===========================================================================
     # fetch default permissions
     #===========================================================================
-    default_perms = sa.query(RepoToPerm, UserToPerm, Repository, Permission)\
-        .outerjoin((UserToPerm, RepoToPerm.user_id == UserToPerm.user_id))\
+    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_id == sa.query(User).filter(User.username == 
-                                            'default').one().user_id).all()
+        .filter(RepoToPerm.user == sa.query(User).filter(User.username == 
+                                            'default').scalar()).all()
                                             
     if user.is_admin:
         #=======================================================================
-        # #admin have all rights set to admin        
+        # #admin have all default rights set to admin        
         #=======================================================================
         user.permissions['global'].add('hg.admin')
         
@@ -164,8 +163,12 @@
         #=======================================================================
         
         #default global
-        for perm in default_perms:
-            user.permissions['global'].add(perm.UserToPerm.permission.permission_name)
+        default_global_perms = sa.query(UserToPerm)\
+            .filter(UserToPerm.user == sa.query(User).filter(User.username == 
+            'default').one())
+        
+        for perm in default_global_perms:
+            user.permissions['global'].add(perm.permission.permission_name)
                     
         #default repositories
         for perm in default_perms:
@@ -183,8 +186,7 @@
         #=======================================================================
         # #overwrite default with user permissions if any
         #=======================================================================
-        user_perms = sa.query(RepoToPerm, UserToPerm, Permission, Repository)\
-            .outerjoin((UserToPerm, RepoToPerm.user_id == UserToPerm.user_id))\
+        user_perms = sa.query(RepoToPerm, Permission, Repository)\
             .join((Repository, RepoToPerm.repository_id == Repository.repo_id))\
             .join((Permission, RepoToPerm.permission_id == Permission.permission_id))\
             .filter(RepoToPerm.user_id == user.user_id).all()