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