Mercurial > public > src > rhodecode
diff pylons_app/lib/auth.py @ 401: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()