comparison rhodecode/model/repo.py @ 3417:fa6ba6727475 beta

further cleanup of UsersGroup Renaming some names ... but trying not to change API or database scheme.
author Mads Kiilerich <madski@unity3d.com>
date Wed, 27 Feb 2013 17:18:43 +0100
parents b8f929bff7e3
children a6bef3e8a361
comparison
equal deleted inserted replaced
3416:5706f6ab60cf 3417:fa6ba6727475
36 from rhodecode.lib.caching_query import FromCache 36 from rhodecode.lib.caching_query import FromCache
37 from rhodecode.lib.hooks import log_create_repository, log_delete_repository 37 from rhodecode.lib.hooks import log_create_repository, log_delete_repository
38 38
39 from rhodecode.model import BaseModel 39 from rhodecode.model import BaseModel
40 from rhodecode.model.db import Repository, UserRepoToPerm, User, Permission, \ 40 from rhodecode.model.db import Repository, UserRepoToPerm, User, Permission, \
41 Statistics, UsersGroup, UsersGroupRepoToPerm, RhodeCodeUi, RepoGroup,\ 41 Statistics, UserGroup, UserGroupRepoToPerm, RhodeCodeUi, RepoGroup,\
42 RhodeCodeSetting, RepositoryField 42 RhodeCodeSetting, RepositoryField
43 from rhodecode.lib import helpers as h 43 from rhodecode.lib import helpers as h
44 from rhodecode.lib.auth import HasRepoPermissionAny 44 from rhodecode.lib.auth import HasRepoPermissionAny
45 from rhodecode.lib.vcs.backends.base import EmptyChangeset 45 from rhodecode.lib.vcs.backends.base import EmptyChangeset
46 46
52 52
53 cls = Repository 53 cls = Repository
54 URL_SEPARATOR = Repository.url_sep() 54 URL_SEPARATOR = Repository.url_sep()
55 55
56 def __get_users_group(self, users_group): 56 def __get_users_group(self, users_group):
57 return self._get_instance(UsersGroup, users_group, 57 return self._get_instance(UserGroup, users_group,
58 callback=UsersGroup.get_by_group_name) 58 callback=UserGroup.get_by_group_name)
59 59
60 def _get_repos_group(self, repos_group): 60 def _get_repos_group(self, repos_group):
61 return self._get_instance(RepoGroup, repos_group, 61 return self._get_instance(RepoGroup, repos_group,
62 callback=RepoGroup.get_by_group_name) 62 callback=RepoGroup.get_by_group_name)
63 63
118 'gravatar_lnk': h.gravatar_url(u.email, 14) 118 'gravatar_lnk': h.gravatar_url(u.email, 14)
119 } for u in users] 119 } for u in users]
120 ) 120 )
121 121
122 def get_users_groups_js(self): 122 def get_users_groups_js(self):
123 users_groups = self.sa.query(UsersGroup)\ 123 users_groups = self.sa.query(UserGroup)\
124 .filter(UsersGroup.users_group_active == True).all() 124 .filter(UserGroup.users_group_active == True).all()
125 125
126 return json.dumps([ 126 return json.dumps([
127 { 127 {
128 'id': gr.users_group_id, 128 'id': gr.users_group_id,
129 'grname': gr.users_group_name, 129 'grname': gr.users_group_name,
413 if fork_of: 413 if fork_of:
414 if copy_fork_permissions: 414 if copy_fork_permissions:
415 repo = fork_of 415 repo = fork_of
416 user_perms = UserRepoToPerm.query()\ 416 user_perms = UserRepoToPerm.query()\
417 .filter(UserRepoToPerm.repository == repo).all() 417 .filter(UserRepoToPerm.repository == repo).all()
418 group_perms = UsersGroupRepoToPerm.query()\ 418 group_perms = UserGroupRepoToPerm.query()\
419 .filter(UsersGroupRepoToPerm.repository == repo).all() 419 .filter(UserGroupRepoToPerm.repository == repo).all()
420 420
421 for perm in user_perms: 421 for perm in user_perms:
422 UserRepoToPerm.create(perm.user, new_repo, 422 UserRepoToPerm.create(perm.user, new_repo,
423 perm.permission) 423 perm.permission)
424 424
425 for perm in group_perms: 425 for perm in group_perms:
426 UsersGroupRepoToPerm.create(perm.users_group, new_repo, 426 UserGroupRepoToPerm.create(perm.users_group, new_repo,
427 perm.permission) 427 perm.permission)
428 else: 428 else:
429 _create_default_perms() 429 _create_default_perms()
430 else: 430 else:
431 _create_default_perms() 431 _create_default_perms()
560 repo = self._get_repo(repo) 560 repo = self._get_repo(repo)
561 group_name = self.__get_users_group(group_name) 561 group_name = self.__get_users_group(group_name)
562 permission = self._get_perm(perm) 562 permission = self._get_perm(perm)
563 563
564 # check if we have that permission already 564 # check if we have that permission already
565 obj = self.sa.query(UsersGroupRepoToPerm)\ 565 obj = self.sa.query(UserGroupRepoToPerm)\
566 .filter(UsersGroupRepoToPerm.users_group == group_name)\ 566 .filter(UserGroupRepoToPerm.users_group == group_name)\
567 .filter(UsersGroupRepoToPerm.repository == repo)\ 567 .filter(UserGroupRepoToPerm.repository == repo)\
568 .scalar() 568 .scalar()
569 569
570 if obj is None: 570 if obj is None:
571 # create new 571 # create new
572 obj = UsersGroupRepoToPerm() 572 obj = UserGroupRepoToPerm()
573 573
574 obj.repository = repo 574 obj.repository = repo
575 obj.users_group = group_name 575 obj.users_group = group_name
576 obj.permission = permission 576 obj.permission = permission
577 self.sa.add(obj) 577 self.sa.add(obj)
586 or user group name 586 or user group name
587 """ 587 """
588 repo = self._get_repo(repo) 588 repo = self._get_repo(repo)
589 group_name = self.__get_users_group(group_name) 589 group_name = self.__get_users_group(group_name)
590 590
591 obj = self.sa.query(UsersGroupRepoToPerm)\ 591 obj = self.sa.query(UserGroupRepoToPerm)\
592 .filter(UsersGroupRepoToPerm.repository == repo)\ 592 .filter(UserGroupRepoToPerm.repository == repo)\
593 .filter(UsersGroupRepoToPerm.users_group == group_name)\ 593 .filter(UserGroupRepoToPerm.users_group == group_name)\
594 .scalar() 594 .scalar()
595 if obj: 595 if obj:
596 self.sa.delete(obj) 596 self.sa.delete(obj)
597 log.debug('Revoked perm to %s on %s' % (repo, group_name)) 597 log.debug('Revoked perm to %s on %s' % (repo, group_name))
598 598