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