Show More
@@ -39,11 +39,15 b' from rhodecode.lib import generate_api_k' | |||
|
39 | 39 | |
|
40 | 40 | log = logging.getLogger(__name__) |
|
41 | 41 | |
|
42 | ||
|
43 | PERM_ = '' | |
|
44 | ||
|
42 | 45 | PERM_WEIGHTS = {'repository.none':0, |
|
43 | 46 | 'repository.read':1, |
|
44 | 47 | 'repository.write':3, |
|
45 | 48 | 'repository.admin':3} |
|
46 | 49 | |
|
50 | ||
|
47 | 51 | class UserModel(BaseModel): |
|
48 | 52 | |
|
49 | 53 | def get(self, user_id, cache=False): |
@@ -260,9 +264,9 b' class UserModel(BaseModel):' | |||
|
260 | 264 | user.permissions['repositories'] = {} |
|
261 | 265 | user.permissions['global'] = set() |
|
262 | 266 | |
|
263 |
#====================================================================== |
|
|
267 | #====================================================================== | |
|
264 | 268 | # fetch default permissions |
|
265 |
#====================================================================== |
|
|
269 | #====================================================================== | |
|
266 | 270 | default_user = self.get_by_username('default', cache=True) |
|
267 | 271 | |
|
268 | 272 | default_perms = self.sa.query(RepoToPerm, Repository, Permission)\ |
@@ -271,9 +275,9 b' class UserModel(BaseModel):' | |||
|
271 | 275 | .filter(RepoToPerm.user == default_user).all() |
|
272 | 276 | |
|
273 | 277 | if user.is_admin: |
|
274 |
#================================================================== |
|
|
278 | #================================================================== | |
|
275 | 279 | # #admin have all default rights set to admin |
|
276 |
#================================================================== |
|
|
280 | #================================================================== | |
|
277 | 281 | user.permissions['global'].add('hg.admin') |
|
278 | 282 | |
|
279 | 283 | for perm in default_perms: |
@@ -281,14 +285,13 b' class UserModel(BaseModel):' | |||
|
281 | 285 | user.permissions['repositories'][perm.RepoToPerm.repository.repo_name] = p |
|
282 | 286 | |
|
283 | 287 | else: |
|
284 |
#================================================================== |
|
|
288 | #================================================================== | |
|
285 | 289 | # set default permissions |
|
286 |
#================================================================== |
|
|
290 | #================================================================== | |
|
287 | 291 | |
|
288 | 292 | #default global |
|
289 | 293 | default_global_perms = self.sa.query(UserToPerm)\ |
|
290 |
.filter(UserToPerm.user == |
|
|
291 | .filter(User.username == 'default').one()) | |
|
294 | .filter(UserToPerm.user == User.by_username('default')) | |
|
292 | 295 | |
|
293 | 296 | for perm in default_global_perms: |
|
294 | 297 | user.permissions['global'].add(perm.permission.permission_name) |
@@ -306,15 +309,23 b' class UserModel(BaseModel):' | |||
|
306 | 309 | |
|
307 | 310 | user.permissions['repositories'][perm.RepoToPerm.repository.repo_name] = p |
|
308 | 311 | |
|
309 |
#================================================================== |
|
|
312 | #================================================================== | |
|
310 | 313 | # overwrite default with user permissions if any |
|
311 |
#================================================================== |
|
|
312 | user_perms = self.sa.query(RepoToPerm, Permission, Repository)\ | |
|
314 | #================================================================== | |
|
315 | ||
|
316 | user_perms = self.sa.query(UserToPerm)\ | |
|
317 | .filter(UserToPerm.user == | |
|
318 | User.get(user.user_id)).all() | |
|
319 | ||
|
320 | for perm in user_perms: | |
|
321 | user.permissions['global'].add(perm.permission.permission_name) | |
|
322 | ||
|
323 | user_repo_perms = self.sa.query(RepoToPerm, Permission, Repository)\ | |
|
313 | 324 | .join((Repository, RepoToPerm.repository_id == Repository.repo_id))\ |
|
314 | 325 | .join((Permission, RepoToPerm.permission_id == Permission.permission_id))\ |
|
315 | 326 | .filter(RepoToPerm.user_id == user.user_id).all() |
|
316 | 327 | |
|
317 | for perm in user_perms: | |
|
328 | for perm in user_repo_perms: | |
|
318 | 329 | if perm.Repository.user_id == user.user_id:#set admin if owner |
|
319 | 330 | p = 'repository.admin' |
|
320 | 331 | else: |
General Comments 0
You need to be logged in to leave comments.
Login now