Changeset - dd0ee9119aa9
[Not reviewed]
beta
0 5 0
Marcin Kuzminski - 13 years ago 2013-01-25 00:30:25
marcin@python-works.com
recursive mode of setting permission should skip private repositories, they should remain private, it's proper thing to do !
5 files changed with 16 insertions and 9 deletions:
0 comments (0 inline, 0 general)
rhodecode/model/repos_group.py
Show inline comments
 
@@ -175,6 +175,10 @@ class ReposGroupModel(BaseModel):
 
                    repos_group=obj, user=user, perm=perm
 
                )
 
            elif isinstance(obj, Repository):
 
                #we do this ONLY IF repository is non-private
 
                if obj.private:
 
                    return
 

	
 
                # we set group permission but we have to switch to repo
 
                # permission
 
                perm = perm.replace('group.', 'repository.')
 
@@ -199,6 +203,7 @@ class ReposGroupModel(BaseModel):
 
                  % (repos_group, recursive))
 

	
 
        for obj in repos_group.recursive_groups_and_repos():
 
            #obj is an instance of a group or repositories in that group
 
            if not recursive:
 
                obj = repos_group
 

	
rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html
Show inline comments
 
@@ -71,7 +71,7 @@
 
    <tr>
 
        <td colspan="6">
 
           ${h.checkbox('recursive',value="True", label=_('apply to children'))}
 
           <span class="help-block">${_('Set or revoke permission to all children of that group, including repositories and other groups')}</span>
 
           <span class="help-block">${_('Set or revoke permission to all children of that group, including non-private repositories and other groups')}</span>
 
        </td>
 
    </tr>
 
</table>
rhodecode/tests/models/common.py
Show inline comments
 
@@ -25,10 +25,11 @@ def _make_group(path, desc='desc', paren
 
    return gr
 

	
 

	
 
def _make_repo(name, repos_group=None, repo_type='hg'):
 
def _make_repo(name, repos_group=None, repo_type='hg', private=False):
 
    return RepoModel().create_repo(name, repo_type, 'desc',
 
                                   TEST_USER_ADMIN_LOGIN,
 
                                   repos_group=repos_group)
 
                                   repos_group=repos_group,
 
                                   private=private)
 

	
 

	
 
def _destroy_project_tree(test_u1_id):
 
@@ -67,6 +68,7 @@ def _create_project_tree():
 
     |__[g0_3] 1 repo
 
        |
 
        |_<g0/g0_3/g0_3_r1>
 
        |_<g0/g0_3/g0_3_r2_private>
 

	
 
    """
 
    test_u1 = UserModel().create_or_update(
 
@@ -84,6 +86,8 @@ def _create_project_tree():
 
    g0_2_r2 = _make_repo('g0/g0_2/g0_2_r2', repos_group=g0_2)
 
    g0_3 = _make_group('g0_3', parent_id=g0)
 
    g0_3_r1 = _make_repo('g0/g0_3/g0_3_r1', repos_group=g0_3)
 
    g0_3_r2_private = _make_repo('g0/g0_3/g0_3_r1_private', repos_group=g0_3,
 
                                 private=True)
 
    return test_u1
 

	
 

	
rhodecode/tests/models/test_user_permissions_on_groups.py
Show inline comments
 
@@ -101,7 +101,10 @@ def test_user_permissions_on_group_with_
 
    _check_expected_count(items, repo_items, expected_count(group, True))
 

	
 
    for name, perm in repo_items:
 
        yield check_tree_perms, name, perm, group, 'repository.write'
 
        if name == 'g0/g0_3/g0_3_r1_private':
 
            yield check_tree_perms, name, perm, group, 'repository.none'
 
        else:
 
            yield check_tree_perms, name, perm, group, 'repository.write'
 

	
 
    for name, perm in items:
 
        yield check_tree_perms, name, perm, group, 'group.write'
rhodecode/tests/models/test_users_group_permissions_on_groups.py
Show inline comments
 
@@ -117,11 +117,6 @@ def test_user_permissions_on_group_with_
 

	
 

	
 
@with_setup(permissions_setup_func)
 
def test_user_permissions_on_group_with_recursive_mode_and_private_repos():
 
    assert 0
 

	
 

	
 
@with_setup(permissions_setup_func)
 
def test_user_permissions_on_group_with_recursive_mode_inner_group():
 
    ## set permission to g0_3 group to none
 
    recursive = True
0 comments (0 inline, 0 general)