Mercurial > kallithea
comparison rhodecode/tests/functional/test_admin_user_groups.py @ 4116:ffd45b185016 rhodecode-2.2.5-gpl
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
This imports changes between changesets 21af6c4eab3d and 6177597791c2 in
RhodeCode's original repository, including only changes to Python files and HTML.
RhodeCode clearly licensed its changes to these files under GPLv3
in their /LICENSE file, which states the following:
The Python code and integrated HTML are licensed under the GPLv3 license.
(See:
https://code.rhodecode.com/rhodecode/files/v2.2.5/LICENSE
or
http://web.archive.org/web/20140512193334/https://code.rhodecode.com/rhodecode/files/f3b123159901f15426d18e3dc395e8369f70ebe0/LICENSE
for an online copy of that LICENSE file)
Conservancy reviewed these changes and confirmed that they can be licensed as
a whole to the Kallithea project under GPLv3-only.
While some of the contents committed herein are clearly licensed
GPLv3-or-later, on the whole we must assume the are GPLv3-only, since the
statement above from RhodeCode indicates that they intend GPLv3-only as their
license, per GPLv3ยง14 and other relevant sections of GPLv3.
author | Bradley M. Kuhn <bkuhn@sfconservancy.org> |
---|---|
date | Wed, 02 Jul 2014 19:03:13 -0400 |
parents | |
children | 7e5f8c12a3fc |
comparison
equal
deleted
inserted
replaced
4115:8b7294a804a0 | 4116:ffd45b185016 |
---|---|
1 # -*- coding: utf-8 -*- | |
2 from rhodecode.tests import * | |
3 from rhodecode.model.db import UserGroup, UserGroupToPerm, Permission | |
4 from rhodecode.model.meta import Session | |
5 | |
6 TEST_USER_GROUP = 'admins_test' | |
7 | |
8 | |
9 class TestAdminUsersGroupsController(TestController): | |
10 | |
11 def test_index(self): | |
12 self.log_user() | |
13 response = self.app.get(url('users_groups')) | |
14 # Test response... | |
15 | |
16 def test_create(self): | |
17 self.log_user() | |
18 users_group_name = TEST_USER_GROUP | |
19 response = self.app.post(url('users_groups'), | |
20 {'users_group_name': users_group_name, | |
21 'user_group_description': 'DESC', | |
22 'active': True}) | |
23 response.follow() | |
24 | |
25 self.checkSessionFlash(response, | |
26 'Created user group %s' % TEST_USER_GROUP) | |
27 | |
28 def test_new(self): | |
29 response = self.app.get(url('new_users_group')) | |
30 | |
31 def test_update(self): | |
32 response = self.app.put(url('users_group', id=1)) | |
33 | |
34 def test_update_browser_fakeout(self): | |
35 response = self.app.post(url('users_group', id=1), | |
36 params=dict(_method='put')) | |
37 | |
38 def test_delete(self): | |
39 self.log_user() | |
40 users_group_name = TEST_USER_GROUP + 'another' | |
41 response = self.app.post(url('users_groups'), | |
42 {'users_group_name':users_group_name, | |
43 'user_group_description': 'DESC', | |
44 'active': True}) | |
45 response.follow() | |
46 | |
47 self.checkSessionFlash(response, | |
48 'Created user group %s' % users_group_name) | |
49 | |
50 gr = Session().query(UserGroup)\ | |
51 .filter(UserGroup.users_group_name == users_group_name).one() | |
52 | |
53 response = self.app.delete(url('users_group', id=gr.users_group_id)) | |
54 | |
55 gr = Session().query(UserGroup)\ | |
56 .filter(UserGroup.users_group_name == users_group_name).scalar() | |
57 | |
58 self.assertEqual(gr, None) | |
59 | |
60 def test_default_perms_enable_repository_read_on_group(self): | |
61 self.log_user() | |
62 users_group_name = TEST_USER_GROUP + 'another2' | |
63 response = self.app.post(url('users_groups'), | |
64 {'users_group_name': users_group_name, | |
65 'user_group_description': 'DESC', | |
66 'active': True}) | |
67 response.follow() | |
68 | |
69 ug = UserGroup.get_by_group_name(users_group_name) | |
70 self.checkSessionFlash(response, | |
71 'Created user group %s' % users_group_name) | |
72 ## ENABLE REPO CREATE ON A GROUP | |
73 response = self.app.put(url('edit_user_group_default_perms', | |
74 id=ug.users_group_id), | |
75 {'create_repo_perm': True}) | |
76 | |
77 response.follow() | |
78 ug = UserGroup.get_by_group_name(users_group_name) | |
79 p = Permission.get_by_key('hg.create.repository') | |
80 p2 = Permission.get_by_key('hg.usergroup.create.false') | |
81 p3 = Permission.get_by_key('hg.fork.none') | |
82 # check if user has this perms, they should be here since | |
83 # defaults are on | |
84 perms = UserGroupToPerm.query()\ | |
85 .filter(UserGroupToPerm.users_group == ug).all() | |
86 | |
87 self.assertEqual( | |
88 sorted([[x.users_group_id, x.permission_id, ] for x in perms]), | |
89 sorted([[ug.users_group_id, p.permission_id], | |
90 [ug.users_group_id, p2.permission_id], | |
91 [ug.users_group_id, p3.permission_id]])) | |
92 | |
93 ## DISABLE REPO CREATE ON A GROUP | |
94 response = self.app.put( | |
95 url('edit_user_group_default_perms', id=ug.users_group_id), {}) | |
96 | |
97 response.follow() | |
98 ug = UserGroup.get_by_group_name(users_group_name) | |
99 p = Permission.get_by_key('hg.create.none') | |
100 p2 = Permission.get_by_key('hg.usergroup.create.false') | |
101 p3 = Permission.get_by_key('hg.fork.none') | |
102 | |
103 # check if user has this perms, they should be here since | |
104 # defaults are on | |
105 perms = UserGroupToPerm.query()\ | |
106 .filter(UserGroupToPerm.users_group == ug).all() | |
107 | |
108 self.assertEqual( | |
109 sorted([[x.users_group_id, x.permission_id, ] for x in perms]), | |
110 sorted([[ug.users_group_id, p.permission_id], | |
111 [ug.users_group_id, p2.permission_id], | |
112 [ug.users_group_id, p3.permission_id]])) | |
113 | |
114 # DELETE ! | |
115 ug = UserGroup.get_by_group_name(users_group_name) | |
116 ugid = ug.users_group_id | |
117 response = self.app.delete(url('users_group', id=ug.users_group_id)) | |
118 response = response.follow() | |
119 gr = Session().query(UserGroup)\ | |
120 .filter(UserGroup.users_group_name == users_group_name).scalar() | |
121 | |
122 self.assertEqual(gr, None) | |
123 p = Permission.get_by_key('hg.create.repository') | |
124 perms = UserGroupToPerm.query()\ | |
125 .filter(UserGroupToPerm.users_group_id == ugid).all() | |
126 perms = [[x.users_group_id, | |
127 x.permission_id, ] for x in perms] | |
128 self.assertEqual(perms, []) | |
129 | |
130 def test_default_perms_enable_repository_fork_on_group(self): | |
131 self.log_user() | |
132 users_group_name = TEST_USER_GROUP + 'another2' | |
133 response = self.app.post(url('users_groups'), | |
134 {'users_group_name': users_group_name, | |
135 'user_group_description': 'DESC', | |
136 'active': True}) | |
137 response.follow() | |
138 | |
139 ug = UserGroup.get_by_group_name(users_group_name) | |
140 self.checkSessionFlash(response, | |
141 'Created user group %s' % users_group_name) | |
142 ## ENABLE REPO CREATE ON A GROUP | |
143 response = self.app.put(url('edit_user_group_default_perms', | |
144 id=ug.users_group_id), | |
145 {'fork_repo_perm': True}) | |
146 | |
147 response.follow() | |
148 ug = UserGroup.get_by_group_name(users_group_name) | |
149 p = Permission.get_by_key('hg.create.none') | |
150 p2 = Permission.get_by_key('hg.usergroup.create.false') | |
151 p3 = Permission.get_by_key('hg.fork.repository') | |
152 # check if user has this perms, they should be here since | |
153 # defaults are on | |
154 perms = UserGroupToPerm.query()\ | |
155 .filter(UserGroupToPerm.users_group == ug).all() | |
156 | |
157 self.assertEqual( | |
158 sorted([[x.users_group_id, x.permission_id, ] for x in perms]), | |
159 sorted([[ug.users_group_id, p.permission_id], | |
160 [ug.users_group_id, p2.permission_id], | |
161 [ug.users_group_id, p3.permission_id]])) | |
162 | |
163 ## DISABLE REPO CREATE ON A GROUP | |
164 response = self.app.put( | |
165 url('edit_user_group_default_perms', id=ug.users_group_id), {}) | |
166 | |
167 response.follow() | |
168 ug = UserGroup.get_by_group_name(users_group_name) | |
169 p = Permission.get_by_key('hg.create.none') | |
170 p2 = Permission.get_by_key('hg.usergroup.create.false') | |
171 p3 = Permission.get_by_key('hg.fork.none') | |
172 # check if user has this perms, they should be here since | |
173 # defaults are on | |
174 perms = UserGroupToPerm.query()\ | |
175 .filter(UserGroupToPerm.users_group == ug).all() | |
176 | |
177 self.assertEqual( | |
178 sorted([[x.users_group_id, x.permission_id, ] for x in perms]), | |
179 sorted([[ug.users_group_id, p.permission_id], | |
180 [ug.users_group_id, p2.permission_id], | |
181 [ug.users_group_id, p3.permission_id]])) | |
182 | |
183 # DELETE ! | |
184 ug = UserGroup.get_by_group_name(users_group_name) | |
185 ugid = ug.users_group_id | |
186 response = self.app.delete(url('users_group', id=ug.users_group_id)) | |
187 response = response.follow() | |
188 gr = Session().query(UserGroup)\ | |
189 .filter(UserGroup.users_group_name == | |
190 users_group_name).scalar() | |
191 | |
192 self.assertEqual(gr, None) | |
193 p = Permission.get_by_key('hg.fork.repository') | |
194 perms = UserGroupToPerm.query()\ | |
195 .filter(UserGroupToPerm.users_group_id == ugid).all() | |
196 perms = [[x.users_group_id, | |
197 x.permission_id, ] for x in perms] | |
198 self.assertEqual( | |
199 perms, | |
200 [] | |
201 ) | |
202 | |
203 def test_delete_browser_fakeout(self): | |
204 response = self.app.post(url('users_group', id=1), | |
205 params=dict(_method='delete')) | |
206 | |
207 def test_show(self): | |
208 response = self.app.get(url('users_group', id=1)) | |
209 | |
210 def test_edit(self): | |
211 response = self.app.get(url('edit_users_group', id=1)) | |
212 | |
213 def test_assign_members(self): | |
214 pass | |
215 | |
216 def test_add_create_permission(self): | |
217 pass | |
218 | |
219 def test_revoke_members(self): | |
220 pass |