Mercurial > kallithea
changeset 2425:a970b6e7c5a2 beta
Update permissions from admin permissions menu, also overwrites defaults
for repos groups
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Fri, 08 Jun 2012 02:25:04 +0200 |
parents | 2dc4cfa44b25 |
children | b80c2f617d44 |
files | rhodecode/model/permission.py |
diffstat | 1 files changed, 17 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/rhodecode/model/permission.py Thu Jun 07 22:23:39 2012 +0200 +++ b/rhodecode/model/permission.py Fri Jun 08 02:25:04 2012 +0200 @@ -31,7 +31,8 @@ from rhodecode.lib.caching_query import FromCache from rhodecode.model import BaseModel -from rhodecode.model.db import User, Permission, UserToPerm, UserRepoToPerm +from rhodecode.model.db import User, Permission, UserToPerm, UserRepoToPerm,\ + UserRepoGroupToPerm log = logging.getLogger(__name__) @@ -87,23 +88,33 @@ form_result['default_perm']) self.sa.add(p) - if p.permission.permission_name.startswith('hg.register.'): + elif p.permission.permission_name.startswith('hg.register.'): p.permission = self.get_permission_by_name( form_result['default_register']) self.sa.add(p) - if p.permission.permission_name.startswith('hg.create.'): + elif p.permission.permission_name.startswith('hg.create.'): p.permission = self.get_permission_by_name( form_result['default_create']) self.sa.add(p) + _def_name = form_result['default_perm'].split('repository.')[-1] #stage 2 update all default permissions for repos if checked if form_result['overwrite_default'] == True: + _def = self.get_permission_by_name('repository.' + _def_name) + # repos for r2p in self.sa.query(UserRepoToPerm)\ - .filter(UserRepoToPerm.user == perm_user).all(): - r2p.permission = self.get_permission_by_name( - form_result['default_perm']) + .filter(UserRepoToPerm.user == perm_user)\ + .all(): + r2p.permission = _def self.sa.add(r2p) + # groups + _def = self.get_permission_by_name('group.' + _def_name) + for g2p in self.sa.query(UserRepoGroupToPerm)\ + .filter(UserRepoGroupToPerm.user == perm_user)\ + .all(): + g2p.permission = _def + self.sa.add(g2p) # stage 3 set anonymous access if perm_user.username == 'default':