diff pylons_app/lib/auth.py @ 371:5cd6616b8673

routes python 2.5 compatible added my account settings, some changes to routes mappers for settings to more custom ones
author Marcin Kuzminski <marcin@python-works.com>
date Wed, 28 Jul 2010 01:44:39 +0200
parents a26f48ad7a8a
children bd8b25ad058d
line wrap: on
line diff
--- a/pylons_app/lib/auth.py	Tue Jul 27 15:57:21 2010 +0200
+++ b/pylons_app/lib/auth.py	Wed Jul 28 01:44:39 2010 +0200
@@ -104,7 +104,23 @@
 
 def set_base_path(config):
     config['base_path'] = config['pylons.app_globals'].base_path
-        
+
+def fill_data(user):
+    """
+    Fills user data with those from database
+    @param user:
+    """
+    sa = meta.Session
+    dbuser = sa.query(User).get(user.user_id)
+    
+    user.username = dbuser.username
+    user.is_admin = dbuser.admin
+    user.name = dbuser.name
+    user.lastname = dbuser.lastname
+    
+    meta.Session.remove()
+    return user
+            
 def fill_perms(user):
     """
     Fills user permission attribute with permissions taken from database
@@ -113,6 +129,7 @@
     
     sa = meta.Session
     user.permissions['repositories'] = {}
+    user.permissions['global'] = set()
     
     #first fetch default permissions
     default_perms = sa.query(Repo2Perm, Repository, Permission)\
@@ -122,14 +139,14 @@
                                             'default').one().user_id).all()
 
     if user.is_admin:
-        user.permissions['global'] = set(['hg.admin'])
+        user.permissions['global'].add('hg.admin')
         #admin have all rights full
         for perm in default_perms:
             p = 'repository.admin'
             user.permissions['repositories'][perm.Repo2Perm.repository.repo_name] = p
     
     else:
-        user.permissions['global'] = set()
+        user.permissions['global'].add('')
         for perm in default_perms:
             if perm.Repository.private:
                 #disable defaults for private repos,
@@ -164,8 +181,8 @@
     @param session:
     """
     user = session.get('hg_app_user', AuthUser())
-  
     if user.is_authenticated:
+        user = fill_data(user)
         user = fill_perms(user)
     session['hg_app_user'] = user
     session.save()