Mercurial > public > src > rhodecode
diff pylons_app/lib/auth.py @ 393:a26f48ad7a8a
fixes issue #16 reimplementation of database repository, for using generic pk instead of repo naming as pk. Which caused to many problems.
Fixed issue when redirecting after repo name change to 404.
Removed update hook from basic app setup
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Tue, 27 Jul 2010 14:53:22 +0200 |
parents | 5bbcc0cac389 |
children | 5cd6616b8673 |
line wrap: on
line diff
--- a/pylons_app/lib/auth.py Tue Jul 27 14:48:13 2010 +0200 +++ b/pylons_app/lib/auth.py Tue Jul 27 14:53:22 2010 +0200 @@ -106,12 +106,17 @@ config['base_path'] = config['pylons.app_globals'].base_path def fill_perms(user): + """ + Fills user permission attribute with permissions taken from database + @param user: + """ + sa = meta.Session user.permissions['repositories'] = {} #first fetch default permissions default_perms = sa.query(Repo2Perm, Repository, Permission)\ - .join((Repository, Repo2Perm.repository == Repository.repo_name))\ + .join((Repository, Repo2Perm.repository_id == Repository.repo_id))\ .join((Permission, Repo2Perm.permission_id == Permission.permission_id))\ .filter(Repo2Perm.user_id == sa.query(User).filter(User.username == 'default').one().user_id).all() @@ -121,7 +126,7 @@ #admin have all rights full for perm in default_perms: p = 'repository.admin' - user.permissions['repositories'][perm.Repo2Perm.repository] = p + user.permissions['repositories'][perm.Repo2Perm.repository.repo_name] = p else: user.permissions['global'] = set() @@ -135,11 +140,11 @@ else: p = perm.Permission.permission_name - user.permissions['repositories'][perm.Repo2Perm.repository] = p + user.permissions['repositories'][perm.Repo2Perm.repository.repo_name] = p user_perms = sa.query(Repo2Perm, Permission, Repository)\ - .join((Repository, Repo2Perm.repository == Repository.repo_name))\ + .join((Repository, Repo2Perm.repository_id == Repository.repo_id))\ .join((Permission, Repo2Perm.permission_id == Permission.permission_id))\ .filter(Repo2Perm.user_id == user.user_id).all() #overwrite userpermissions with defaults @@ -149,7 +154,7 @@ p = 'repository.write' else: p = perm.Permission.permission_name - user.permissions['repositories'][perm.Repo2Perm.repository] = p + user.permissions['repositories'][perm.Repo2Perm.repository.repo_name] = p meta.Session.remove() return user @@ -159,10 +164,9 @@ @param session: """ user = session.get('hg_app_user', AuthUser()) - + if user.is_authenticated: user = fill_perms(user) - session['hg_app_user'] = user session.save() return user