Mercurial > kallithea
comparison rhodecode/tests/functional/test_admin_users_groups.py @ 2709:d2d35cf2b351 beta
RhodeCode now has a option to explicitly set forking permissions. ref #508
- changed the way permissons on users groups behave. Now explicit set on user
is more important than permission set on users group
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Fri, 10 Aug 2012 03:09:36 +0200 |
parents | c9adf2a4929a |
children | a89d375c5788 |
comparison
equal
deleted
inserted
replaced
2708:9bce679a3f49 | 2709:d2d35cf2b351 |
---|---|
63 def test_enable_repository_read_on_group(self): | 63 def test_enable_repository_read_on_group(self): |
64 self.log_user() | 64 self.log_user() |
65 users_group_name = TEST_USERS_GROUP + 'another2' | 65 users_group_name = TEST_USERS_GROUP + 'another2' |
66 response = self.app.post(url('users_groups'), | 66 response = self.app.post(url('users_groups'), |
67 {'users_group_name': users_group_name, | 67 {'users_group_name': users_group_name, |
68 'active':True}) | 68 'active': True}) |
69 response.follow() | 69 response.follow() |
70 | 70 |
71 ug = UsersGroup.get_by_group_name(users_group_name) | 71 ug = UsersGroup.get_by_group_name(users_group_name) |
72 self.checkSessionFlash(response, | 72 self.checkSessionFlash(response, |
73 'created users group %s' % users_group_name) | 73 'created users group %s' % users_group_name) |
74 | 74 ## ENABLE REPO CREATE ON A GROUP |
75 response = self.app.put(url('users_group_perm', id=ug.users_group_id), | 75 response = self.app.put(url('users_group_perm', id=ug.users_group_id), |
76 {'create_repo_perm': True}) | 76 {'create_repo_perm': True}) |
77 | 77 |
78 response.follow() | 78 response.follow() |
79 ug = UsersGroup.get_by_group_name(users_group_name) | 79 ug = UsersGroup.get_by_group_name(users_group_name) |
80 p = Permission.get_by_key('hg.create.repository') | 80 p = Permission.get_by_key('hg.create.repository') |
81 # check if user has this perm | 81 p2 = Permission.get_by_key('hg.fork.none') |
82 perms = UsersGroupToPerm.query()\ | 82 # check if user has this perms, they should be here since |
83 .filter(UsersGroupToPerm.users_group == ug).all() | 83 # defaults are on |
84 perms = [[x.__dict__['users_group_id'], | 84 perms = UsersGroupToPerm.query()\ |
85 x.__dict__['permission_id'],] for x in perms] | 85 .filter(UsersGroupToPerm.users_group == ug).all() |
86 self.assertEqual( | 86 |
87 perms, | 87 self.assertEqual( |
88 [[ug.users_group_id, p.permission_id]] | 88 [[x.users_group_id, x.permission_id, ] for x in perms], |
89 [[ug.users_group_id, p.permission_id], | |
90 [ug.users_group_id, p2.permission_id]] | |
91 ) | |
92 | |
93 ## DISABLE REPO CREATE ON A GROUP | |
94 response = self.app.put(url('users_group_perm', id=ug.users_group_id), | |
95 {}) | |
96 | |
97 response.follow() | |
98 ug = UsersGroup.get_by_group_name(users_group_name) | |
99 p = Permission.get_by_key('hg.create.none') | |
100 p2 = Permission.get_by_key('hg.fork.none') | |
101 # check if user has this perms, they should be here since | |
102 # defaults are on | |
103 perms = UsersGroupToPerm.query()\ | |
104 .filter(UsersGroupToPerm.users_group == ug).all() | |
105 | |
106 self.assertEqual( | |
107 [[x.users_group_id, x.permission_id, ] for x in perms], | |
108 [[ug.users_group_id, p.permission_id], | |
109 [ug.users_group_id, p2.permission_id]] | |
89 ) | 110 ) |
90 | 111 |
91 # DELETE ! | 112 # DELETE ! |
92 ug = UsersGroup.get_by_group_name(users_group_name) | 113 ug = UsersGroup.get_by_group_name(users_group_name) |
93 ugid = ug.users_group_id | 114 ugid = ug.users_group_id |
99 | 120 |
100 self.assertEqual(gr, None) | 121 self.assertEqual(gr, None) |
101 p = Permission.get_by_key('hg.create.repository') | 122 p = Permission.get_by_key('hg.create.repository') |
102 perms = UsersGroupToPerm.query()\ | 123 perms = UsersGroupToPerm.query()\ |
103 .filter(UsersGroupToPerm.users_group_id == ugid).all() | 124 .filter(UsersGroupToPerm.users_group_id == ugid).all() |
104 perms = [[x.__dict__['users_group_id'], | 125 perms = [[x.users_group_id, |
105 x.__dict__['permission_id'],] for x in perms] | 126 x.permission_id, ] for x in perms] |
127 self.assertEqual( | |
128 perms, | |
129 [] | |
130 ) | |
131 | |
132 def test_enable_repository_fork_on_group(self): | |
133 self.log_user() | |
134 users_group_name = TEST_USERS_GROUP + 'another2' | |
135 response = self.app.post(url('users_groups'), | |
136 {'users_group_name': users_group_name, | |
137 'active': True}) | |
138 response.follow() | |
139 | |
140 ug = UsersGroup.get_by_group_name(users_group_name) | |
141 self.checkSessionFlash(response, | |
142 'created users group %s' % users_group_name) | |
143 ## ENABLE REPO CREATE ON A GROUP | |
144 response = self.app.put(url('users_group_perm', id=ug.users_group_id), | |
145 {'fork_repo_perm': True}) | |
146 | |
147 response.follow() | |
148 ug = UsersGroup.get_by_group_name(users_group_name) | |
149 p = Permission.get_by_key('hg.create.none') | |
150 p2 = Permission.get_by_key('hg.fork.repository') | |
151 # check if user has this perms, they should be here since | |
152 # defaults are on | |
153 perms = UsersGroupToPerm.query()\ | |
154 .filter(UsersGroupToPerm.users_group == ug).all() | |
155 | |
156 self.assertEqual( | |
157 [[x.users_group_id, x.permission_id, ] for x in perms], | |
158 [[ug.users_group_id, p.permission_id], | |
159 [ug.users_group_id, p2.permission_id]] | |
160 ) | |
161 | |
162 ## DISABLE REPO CREATE ON A GROUP | |
163 response = self.app.put(url('users_group_perm', id=ug.users_group_id), | |
164 {}) | |
165 | |
166 response.follow() | |
167 ug = UsersGroup.get_by_group_name(users_group_name) | |
168 p = Permission.get_by_key('hg.create.none') | |
169 p2 = Permission.get_by_key('hg.fork.none') | |
170 # check if user has this perms, they should be here since | |
171 # defaults are on | |
172 perms = UsersGroupToPerm.query()\ | |
173 .filter(UsersGroupToPerm.users_group == ug).all() | |
174 | |
175 self.assertEqual( | |
176 [[x.users_group_id, x.permission_id, ] for x in perms], | |
177 [[ug.users_group_id, p.permission_id], | |
178 [ug.users_group_id, p2.permission_id]] | |
179 ) | |
180 | |
181 # DELETE ! | |
182 ug = UsersGroup.get_by_group_name(users_group_name) | |
183 ugid = ug.users_group_id | |
184 response = self.app.delete(url('users_group', id=ug.users_group_id)) | |
185 response = response.follow() | |
186 gr = self.Session.query(UsersGroup)\ | |
187 .filter(UsersGroup.users_group_name == | |
188 users_group_name).scalar() | |
189 | |
190 self.assertEqual(gr, None) | |
191 p = Permission.get_by_key('hg.fork.repository') | |
192 perms = UsersGroupToPerm.query()\ | |
193 .filter(UsersGroupToPerm.users_group_id == ugid).all() | |
194 perms = [[x.users_group_id, | |
195 x.permission_id, ] for x in perms] | |
106 self.assertEqual( | 196 self.assertEqual( |
107 perms, | 197 perms, |
108 [] | 198 [] |
109 ) | 199 ) |
110 | 200 |