Changeset - 88ec8f7b9e64
[Not reviewed]
beta
0 1 0
Marcin Kuzminski - 12 years ago 2013-05-22 00:48:34
marcin@python-works.com
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
1 file changed with 11 insertions and 10 deletions:
0 comments (0 inline, 0 general)
rhodecode/controllers/admin/repos_groups.py
Show inline comments
 
@@ -211,11 +211,6 @@ class ReposGroupsController(BaseControll
 
        )()
 
        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 @@ class ReposGroupsController(BaseControll
 
    @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)
0 comments (0 inline, 0 general)