Show More
@@ -175,6 +175,10 b' class ReposGroupModel(BaseModel):' | |||||
175 | repos_group=obj, user=user, perm=perm |
|
175 | repos_group=obj, user=user, perm=perm | |
176 | ) |
|
176 | ) | |
177 | elif isinstance(obj, Repository): |
|
177 | elif isinstance(obj, Repository): | |
|
178 | #we do this ONLY IF repository is non-private | |||
|
179 | if obj.private: | |||
|
180 | return | |||
|
181 | ||||
178 | # we set group permission but we have to switch to repo |
|
182 | # we set group permission but we have to switch to repo | |
179 | # permission |
|
183 | # permission | |
180 | perm = perm.replace('group.', 'repository.') |
|
184 | perm = perm.replace('group.', 'repository.') | |
@@ -199,6 +203,7 b' class ReposGroupModel(BaseModel):' | |||||
199 | % (repos_group, recursive)) |
|
203 | % (repos_group, recursive)) | |
200 |
|
204 | |||
201 | for obj in repos_group.recursive_groups_and_repos(): |
|
205 | for obj in repos_group.recursive_groups_and_repos(): | |
|
206 | #obj is an instance of a group or repositories in that group | |||
202 | if not recursive: |
|
207 | if not recursive: | |
203 | obj = repos_group |
|
208 | obj = repos_group | |
204 |
|
209 |
@@ -71,7 +71,7 b'' | |||||
71 | <tr> |
|
71 | <tr> | |
72 | <td colspan="6"> |
|
72 | <td colspan="6"> | |
73 | ${h.checkbox('recursive',value="True", label=_('apply to children'))} |
|
73 | ${h.checkbox('recursive',value="True", label=_('apply to children'))} | |
74 | <span class="help-block">${_('Set or revoke permission to all children of that group, including repositories and other groups')}</span> |
|
74 | <span class="help-block">${_('Set or revoke permission to all children of that group, including non-private repositories and other groups')}</span> | |
75 | </td> |
|
75 | </td> | |
76 | </tr> |
|
76 | </tr> | |
77 | </table> |
|
77 | </table> |
@@ -25,10 +25,11 b" def _make_group(path, desc='desc', paren" | |||||
25 | return gr |
|
25 | return gr | |
26 |
|
26 | |||
27 |
|
27 | |||
28 | def _make_repo(name, repos_group=None, repo_type='hg'): |
|
28 | def _make_repo(name, repos_group=None, repo_type='hg', private=False): | |
29 | return RepoModel().create_repo(name, repo_type, 'desc', |
|
29 | return RepoModel().create_repo(name, repo_type, 'desc', | |
30 | TEST_USER_ADMIN_LOGIN, |
|
30 | TEST_USER_ADMIN_LOGIN, | |
31 |
repos_group=repos_group |
|
31 | repos_group=repos_group, | |
|
32 | private=private) | |||
32 |
|
33 | |||
33 |
|
34 | |||
34 | def _destroy_project_tree(test_u1_id): |
|
35 | def _destroy_project_tree(test_u1_id): | |
@@ -67,6 +68,7 b' def _create_project_tree():' | |||||
67 | |__[g0_3] 1 repo |
|
68 | |__[g0_3] 1 repo | |
68 | | |
|
69 | | | |
69 | |_<g0/g0_3/g0_3_r1> |
|
70 | |_<g0/g0_3/g0_3_r1> | |
|
71 | |_<g0/g0_3/g0_3_r2_private> | |||
70 |
|
72 | |||
71 | """ |
|
73 | """ | |
72 | test_u1 = UserModel().create_or_update( |
|
74 | test_u1 = UserModel().create_or_update( | |
@@ -84,6 +86,8 b' def _create_project_tree():' | |||||
84 | g0_2_r2 = _make_repo('g0/g0_2/g0_2_r2', repos_group=g0_2) |
|
86 | g0_2_r2 = _make_repo('g0/g0_2/g0_2_r2', repos_group=g0_2) | |
85 | g0_3 = _make_group('g0_3', parent_id=g0) |
|
87 | g0_3 = _make_group('g0_3', parent_id=g0) | |
86 | g0_3_r1 = _make_repo('g0/g0_3/g0_3_r1', repos_group=g0_3) |
|
88 | g0_3_r1 = _make_repo('g0/g0_3/g0_3_r1', repos_group=g0_3) | |
|
89 | g0_3_r2_private = _make_repo('g0/g0_3/g0_3_r1_private', repos_group=g0_3, | |||
|
90 | private=True) | |||
87 | return test_u1 |
|
91 | return test_u1 | |
88 |
|
92 | |||
89 |
|
93 |
@@ -101,7 +101,10 b' def test_user_permissions_on_group_with_' | |||||
101 | _check_expected_count(items, repo_items, expected_count(group, True)) |
|
101 | _check_expected_count(items, repo_items, expected_count(group, True)) | |
102 |
|
102 | |||
103 | for name, perm in repo_items: |
|
103 | for name, perm in repo_items: | |
104 | yield check_tree_perms, name, perm, group, 'repository.write' |
|
104 | if name == 'g0/g0_3/g0_3_r1_private': | |
|
105 | yield check_tree_perms, name, perm, group, 'repository.none' | |||
|
106 | else: | |||
|
107 | yield check_tree_perms, name, perm, group, 'repository.write' | |||
105 |
|
108 | |||
106 | for name, perm in items: |
|
109 | for name, perm in items: | |
107 | yield check_tree_perms, name, perm, group, 'group.write' |
|
110 | yield check_tree_perms, name, perm, group, 'group.write' |
@@ -117,11 +117,6 b' def test_user_permissions_on_group_with_' | |||||
117 |
|
117 | |||
118 |
|
118 | |||
119 | @with_setup(permissions_setup_func) |
|
119 | @with_setup(permissions_setup_func) | |
120 | def test_user_permissions_on_group_with_recursive_mode_and_private_repos(): |
|
|||
121 | assert 0 |
|
|||
122 |
|
||||
123 |
|
||||
124 | @with_setup(permissions_setup_func) |
|
|||
125 | def test_user_permissions_on_group_with_recursive_mode_inner_group(): |
|
120 | def test_user_permissions_on_group_with_recursive_mode_inner_group(): | |
126 | ## set permission to g0_3 group to none |
|
121 | ## set permission to g0_3 group to none | |
127 | recursive = True |
|
122 | recursive = True |
General Comments 0
You need to be logged in to leave comments.
Login now