Mercurial > kallithea
changeset 3883:88ec8f7b9e64 beta
Fixed issues with group renames for local repository group admins.
- revoke permission on yourself check was triggered thus preventing
group update. Moved this check into update permission function
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Wed, 22 May 2013 00:48:34 +0200 |
parents | 2c5ceb546234 |
children | 31f8c9d76a26 |
files | rhodecode/controllers/admin/repos_groups.py |
diffstat | 1 files changed, 11 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/rhodecode/controllers/admin/repos_groups.py Mon May 20 21:40:00 2013 +0200 +++ b/rhodecode/controllers/admin/repos_groups.py Wed May 22 00:48:34 2013 +0200 @@ -211,11 +211,6 @@ )() try: form_result = repos_group_form.to_python(dict(request.POST)) - if not c.rhodecode_user.is_admin: - if self._revoke_perms_on_yourself(form_result): - msg = _('Cannot revoke permission for yourself as admin') - h.flash(msg, category='warning') - raise Exception('revoke admin permission on self') new_gr = ReposGroupModel().update(group_name, form_result) Session().commit() @@ -278,14 +273,20 @@ @HasReposGroupPermissionAnyDecorator('group.admin') def set_repo_group_perm_member(self, group_name): c.repos_group = ReposGroupModel()._get_repo_group(group_name) - form = RepoGroupPermsForm()().to_python(request.POST) - - recursive = form['recursive'] + form_result = RepoGroupPermsForm()().to_python(request.POST) + if not c.rhodecode_user.is_admin: + if self._revoke_perms_on_yourself(form_result): + msg = _('Cannot revoke permission for yourself as admin') + h.flash(msg, category='warning') + return redirect(url('edit_repos_group', group_name=group_name)) + recursive = form_result['recursive'] # iterate over all members(if in recursive mode) of this groups and # set the permissions ! # this can be potentially heavy operation - ReposGroupModel()._update_permissions(c.repos_group, form['perms_new'], - form['perms_updates'], recursive) + ReposGroupModel()._update_permissions(c.repos_group, + form_result['perms_new'], + form_result['perms_updates'], + recursive) #TODO: implement this #action_logger(self.rhodecode_user, 'admin_changed_repo_permissions', # repo_name, self.ip_addr, self.sa)