Mercurial > kallithea
changeset 3348:6f82f8bdd22c
recursive mode of setting permission should skip private repositories, they should remain private, it's proper thing to do !
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Fri, 25 Jan 2013 00:30:25 +0100 |
parents | 055dc1ab768c |
children | b17a8090b6d1 |
files | rhodecode/model/repos_group.py rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html rhodecode/tests/models/common.py rhodecode/tests/models/test_user_permissions_on_groups.py |
diffstat | 4 files changed, 16 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/rhodecode/model/repos_group.py Thu Jan 24 01:20:03 2013 +0100 +++ b/rhodecode/model/repos_group.py Fri Jan 25 00:30:25 2013 +0100 @@ -175,6 +175,10 @@ 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 @@ % (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
--- a/rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html Thu Jan 24 01:20:03 2013 +0100 +++ b/rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html Fri Jan 25 00:30:25 2013 +0100 @@ -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>
--- a/rhodecode/tests/models/common.py Thu Jan 24 01:20:03 2013 +0100 +++ b/rhodecode/tests/models/common.py Fri Jan 25 00:30:25 2013 +0100 @@ -25,10 +25,11 @@ 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 @@ |__[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 @@ 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
--- a/rhodecode/tests/models/test_user_permissions_on_groups.py Thu Jan 24 01:20:03 2013 +0100 +++ b/rhodecode/tests/models/test_user_permissions_on_groups.py Fri Jan 25 00:30:25 2013 +0100 @@ -101,7 +101,10 @@ _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'