Mercurial > kallithea
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 |