comparison rhodecode/model/repo.py @ 2820:c0cc8f8a71b0 beta

Permissions on group can be set in recursive mode setting defined permission to all children - more explicit permissions - fixes for empty values in permission form
author Marcin Kuzminski <marcin@python-works.com>
date Fri, 07 Sep 2012 02:20:02 +0200
parents 839ee7a774ab
children f7a52d548fd0 1b275d04ac07
comparison
equal deleted inserted replaced
2819:bbaf0b86a1fe 2820:c0cc8f8a71b0
366 obj = UserRepoToPerm() 366 obj = UserRepoToPerm()
367 obj.repository = repo 367 obj.repository = repo
368 obj.user = user 368 obj.user = user
369 obj.permission = permission 369 obj.permission = permission
370 self.sa.add(obj) 370 self.sa.add(obj)
371 log.debug('Granted perm %s to %s on %s' % (perm, user, repo))
371 372
372 def revoke_user_permission(self, repo, user): 373 def revoke_user_permission(self, repo, user):
373 """ 374 """
374 Revoke permission for user on given repository 375 Revoke permission for user on given repository
375 376
381 repo = self._get_repo(repo) 382 repo = self._get_repo(repo)
382 383
383 obj = self.sa.query(UserRepoToPerm)\ 384 obj = self.sa.query(UserRepoToPerm)\
384 .filter(UserRepoToPerm.repository == repo)\ 385 .filter(UserRepoToPerm.repository == repo)\
385 .filter(UserRepoToPerm.user == user)\ 386 .filter(UserRepoToPerm.user == user)\
386 .one() 387 .scalar()
387 self.sa.delete(obj) 388 if obj:
389 self.sa.delete(obj)
390 log.debug('Revoked perm on %s on %s' % (repo, user))
388 391
389 def grant_users_group_permission(self, repo, group_name, perm): 392 def grant_users_group_permission(self, repo, group_name, perm):
390 """ 393 """
391 Grant permission for users group on given repository, or update 394 Grant permission for users group on given repository, or update
392 existing one if found 395 existing one if found
412 415
413 obj.repository = repo 416 obj.repository = repo
414 obj.users_group = group_name 417 obj.users_group = group_name
415 obj.permission = permission 418 obj.permission = permission
416 self.sa.add(obj) 419 self.sa.add(obj)
420 log.debug('Granted perm %s to %s on %s' % (perm, group_name, repo))
417 421
418 def revoke_users_group_permission(self, repo, group_name): 422 def revoke_users_group_permission(self, repo, group_name):
419 """ 423 """
420 Revoke permission for users group on given repository 424 Revoke permission for users group on given repository
421 425
427 group_name = self.__get_users_group(group_name) 431 group_name = self.__get_users_group(group_name)
428 432
429 obj = self.sa.query(UsersGroupRepoToPerm)\ 433 obj = self.sa.query(UsersGroupRepoToPerm)\
430 .filter(UsersGroupRepoToPerm.repository == repo)\ 434 .filter(UsersGroupRepoToPerm.repository == repo)\
431 .filter(UsersGroupRepoToPerm.users_group == group_name)\ 435 .filter(UsersGroupRepoToPerm.users_group == group_name)\
432 .one() 436 .scalar()
433 self.sa.delete(obj) 437 if obj:
438 self.sa.delete(obj)
439 log.debug('Revoked perm to %s on %s' % (repo, group_name))
434 440
435 def delete_stats(self, repo_name): 441 def delete_stats(self, repo_name):
436 """ 442 """
437 removes stats for given repo 443 removes stats for given repo
438 444