comparison rhodecode/model/user.py @ 1729:da8ee2ef7f6d beta

implements #236 forking copy permission option
author Marcin Kuzminski <marcin@python-works.com>
date Sat, 26 Nov 2011 18:51:16 +0200
parents 07e56179633e
children 31e6eb2fb4b2
comparison
equal deleted inserted replaced
1728:07e56179633e 1729:da8ee2ef7f6d
374 #================================================================== 374 #==================================================================
375 # set default permissions 375 # set default permissions
376 #================================================================== 376 #==================================================================
377 uid = user.user_id 377 uid = user.user_id
378 378
379 #default global 379 # default global
380 default_global_perms = self.sa.query(UserToPerm)\ 380 default_global_perms = self.sa.query(UserToPerm)\
381 .filter(UserToPerm.user_id == default_user_id) 381 .filter(UserToPerm.user_id == default_user_id)
382 382
383 for perm in default_global_perms: 383 for perm in default_global_perms:
384 user.permissions['global'].add(perm.permission.permission_name) 384 user.permissions['global'].add(perm.permission.permission_name)
385 385
386 #default for repositories 386 # default for repositories
387 for perm in default_perms: 387 for perm in default_perms:
388 if perm.Repository.private and not (perm.Repository.user_id == 388 if perm.Repository.private and not (perm.Repository.user_id ==
389 uid): 389 uid):
390 #disable defaults for private repos, 390 # disable defaults for private repos,
391 p = 'repository.none' 391 p = 'repository.none'
392 elif perm.Repository.user_id == uid: 392 elif perm.Repository.user_id == uid:
393 #set admin if owner 393 # set admin if owner
394 p = 'repository.admin' 394 p = 'repository.admin'
395 else: 395 else:
396 p = perm.Permission.permission_name 396 p = perm.Permission.permission_name
397 397
398 user.permissions['repositories'][perm.UserRepoToPerm. 398 user.permissions['repositories'][perm.UserRepoToPerm.
400 400
401 #================================================================== 401 #==================================================================
402 # overwrite default with user permissions if any 402 # overwrite default with user permissions if any
403 #================================================================== 403 #==================================================================
404 404
405 #user global 405 # user global
406 user_perms = self.sa.query(UserToPerm)\ 406 user_perms = self.sa.query(UserToPerm)\
407 .options(joinedload(UserToPerm.permission))\ 407 .options(joinedload(UserToPerm.permission))\
408 .filter(UserToPerm.user_id == uid).all() 408 .filter(UserToPerm.user_id == uid).all()
409 409
410 for perm in user_perms: 410 for perm in user_perms:
411 user.permissions['global'].add(perm.permission. 411 user.permissions['global'].add(perm.permission.permission_name)
412 permission_name) 412
413 413 # user repositories
414 #user repositories
415 user_repo_perms = self.sa.query(UserRepoToPerm, Permission, 414 user_repo_perms = self.sa.query(UserRepoToPerm, Permission,
416 Repository)\ 415 Repository)\
417 .join((Repository, UserRepoToPerm.repository_id == 416 .join((Repository, UserRepoToPerm.repository_id ==
418 Repository.repo_id))\ 417 Repository.repo_id))\
419 .join((Permission, UserRepoToPerm.permission_id == 418 .join((Permission, UserRepoToPerm.permission_id ==