Mercurial > kallithea
diff rhodecode/controllers/admin/users_groups.py @ 1271:aa7e45ad0cea beta
Fixed permissions for users groups, group can have create repo permission now.
Some code refactor + pep8ify
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Tue, 19 Apr 2011 17:28:42 +0200 |
parents | 5f2fbab7c429 |
children | a62af7d509ee |
line wrap: on
line diff
--- a/rhodecode/controllers/admin/users_groups.py Tue Apr 19 17:23:02 2011 +0200 +++ b/rhodecode/controllers/admin/users_groups.py Tue Apr 19 17:28:42 2011 +0200 @@ -36,9 +36,8 @@ from rhodecode.lib.auth import LoginRequired, HasPermissionAllDecorator from rhodecode.lib.base import BaseController, render -from rhodecode.model.db import User, UsersGroup +from rhodecode.model.db import User, UsersGroup, Permission, UsersGroupToPerm from rhodecode.model.forms import UserForm, UsersGroupForm -from rhodecode.model.user import UserModel from rhodecode.model.users_group import UsersGroupModel log = logging.getLogger(__name__) @@ -123,10 +122,16 @@ category='success') #action_logger(self.rhodecode_user, 'new_user', '', '', self.sa) except formencode.Invalid, errors: + e = errors.error_dict or {} + + perm = Permission.get_by_key('hg.create.repository') + e.update({'create_repo_perm': + UsersGroupToPerm.has_perm(id, perm)}) + return htmlfill.render( render('admin/users_groups/users_group_edit.html'), defaults=errors.value, - errors=errors.error_dict or {}, + errors=e, prefix_error=False, encoding="UTF-8") except Exception: @@ -171,10 +176,38 @@ c.available_members = [(x.user_id, x.username) for x in self.sa.query(User).all()] defaults = c.users_group.get_dict() - + perm = Permission.get_by_key('hg.create.repository') + defaults.update({'create_repo_perm': + UsersGroupToPerm.has_perm(id, perm)}) return htmlfill.render( render('admin/users_groups/users_group_edit.html'), defaults=defaults, encoding="UTF-8", force_defaults=False ) + + def update_perm(self, id): + """PUT /users_perm/id: Update an existing item""" + # url('users_group_perm', id=ID, method='put') + + grant_perm = request.POST.get('create_repo_perm', False) + + if grant_perm: + perm = Permission.get_by_key('hg.create.none') + UsersGroupToPerm.revoke_perm(id, perm) + + perm = Permission.get_by_key('hg.create.repository') + UsersGroupToPerm.grant_perm(id, perm) + h.flash(_("Granted 'repository create' permission to user"), + category='success') + + else: + perm = Permission.get_by_key('hg.create.repository') + UsersGroupToPerm.revoke_perm(id, perm) + + perm = Permission.get_by_key('hg.create.none') + UsersGroupToPerm.grant_perm(id, perm) + h.flash(_("Revoked 'repository create' permission to user"), + category='success') + + return redirect(url('edit_users_group', id=id))