diff --git a/rhodecode/controllers/admin/repos.py b/rhodecode/controllers/admin/repos.py --- a/rhodecode/controllers/admin/repos.py +++ b/rhodecode/controllers/admin/repos.py @@ -45,7 +45,7 @@ from rhodecode.model.meta import Session from rhodecode.model.db import User, Repository, UserFollowing, RepoGroup,\ RhodeCodeSetting from rhodecode.model.forms import RepoForm -from rhodecode.model.scm import ScmModel +from rhodecode.model.scm import ScmModel, GroupList from rhodecode.model.repo import RepoModel from rhodecode.lib.compat import json from sqlalchemy.sql.expression import func @@ -68,7 +68,9 @@ class ReposController(BaseController): super(ReposController, self).__before__() def __load_defaults(self): - c.repo_groups = RepoGroup.groups_choices(check_perms=True) + acl_groups = GroupList(RepoGroup.query().all(), + perm_set=['group.write', 'group.admin']) + c.repo_groups = RepoGroup.groups_choices(groups=acl_groups) c.repo_groups_choices = map(lambda k: unicode(k[0]), c.repo_groups) repo_model = RepoModel() diff --git a/rhodecode/controllers/admin/settings.py b/rhodecode/controllers/admin/settings.py --- a/rhodecode/controllers/admin/settings.py +++ b/rhodecode/controllers/admin/settings.py @@ -46,7 +46,7 @@ from rhodecode.model.db import RhodeCode RhodeCodeSetting, PullRequest, PullRequestReviewers from rhodecode.model.forms import UserForm, ApplicationSettingsForm, \ ApplicationUiSettingsForm, ApplicationVisualisationForm -from rhodecode.model.scm import ScmModel +from rhodecode.model.scm import ScmModel, GroupList from rhodecode.model.user import UserModel from rhodecode.model.repo import RepoModel from rhodecode.model.db import User @@ -483,7 +483,9 @@ class SettingsController(BaseController) def create_repository(self): """GET /_admin/create_repository: Form to create a new item""" - c.repo_groups = RepoGroup.groups_choices(check_perms=True) + acl_groups = GroupList(RepoGroup.query().all(), + perm_set=['group.write', 'group.admin']) + c.repo_groups = RepoGroup.groups_choices(groups=acl_groups) c.repo_groups_choices = map(lambda k: unicode(k[0]), c.repo_groups) choices, c.landing_revs = ScmModel().get_repo_landing_revs() diff --git a/rhodecode/controllers/forks.py b/rhodecode/controllers/forks.py --- a/rhodecode/controllers/forks.py +++ b/rhodecode/controllers/forks.py @@ -41,7 +41,7 @@ from rhodecode.lib.base import BaseRepoC from rhodecode.model.db import Repository, RepoGroup, UserFollowing, User from rhodecode.model.repo import RepoModel from rhodecode.model.forms import RepoForkForm -from rhodecode.model.scm import ScmModel +from rhodecode.model.scm import ScmModel, GroupList from rhodecode.lib.utils2 import safe_int log = logging.getLogger(__name__) @@ -54,7 +54,9 @@ class ForksController(BaseRepoController super(ForksController, self).__before__() def __load_defaults(self): - c.repo_groups = RepoGroup.groups_choices(check_perms=True) + acl_groups = GroupList(RepoGroup.query().all(), + perm_set=['group.write', 'group.admin']) + c.repo_groups = RepoGroup.groups_choices(groups=acl_groups) c.repo_groups_choices = map(lambda k: unicode(k[0]), c.repo_groups) choices, c.landing_revs = ScmModel().get_repo_landing_revs() c.landing_revs_choices = choices diff --git a/rhodecode/controllers/settings.py b/rhodecode/controllers/settings.py --- a/rhodecode/controllers/settings.py +++ b/rhodecode/controllers/settings.py @@ -44,7 +44,7 @@ from rhodecode.model.forms import RepoSe from rhodecode.model.repo import RepoModel from rhodecode.model.db import RepoGroup, Repository from rhodecode.model.meta import Session -from rhodecode.model.scm import ScmModel +from rhodecode.model.scm import ScmModel, GroupList log = logging.getLogger(__name__) @@ -56,7 +56,9 @@ class SettingsController(BaseRepoControl super(SettingsController, self).__before__() def __load_defaults(self): - c.repo_groups = RepoGroup.groups_choices(check_perms=True) + acl_groups = GroupList(RepoGroup.query().all(), + perm_set=['group.write', 'group.admin']) + c.repo_groups = RepoGroup.groups_choices(groups=acl_groups) c.repo_groups_choices = map(lambda k: unicode(k[0]), c.repo_groups) repo_model = RepoModel() @@ -73,8 +75,7 @@ class SettingsController(BaseRepoControl """ self.__load_defaults() - c.repo_info = db_repo = Repository.get_by_repo_name(repo_name) - repo = db_repo.scm_instance + c.repo_info = Repository.get_by_repo_name(repo_name) if c.repo_info is None: h.not_mapped_error(repo_name) diff --git a/rhodecode/model/db.py b/rhodecode/model/db.py --- a/rhodecode/model/db.py +++ b/rhodecode/model/db.py @@ -1177,15 +1177,11 @@ class RepoGroup(Base, BaseModel): self.group_name) @classmethod - def groups_choices(cls, groups=None, check_perms=False, show_empty_group=True): + def groups_choices(cls, groups=None, show_empty_group=True): from webhelpers.html import literal as _literal - from rhodecode.model.scm import ScmModel if not groups: groups = cls.query().all() - if check_perms: - #filter group user have access to, it's done - #magically inside ScmModel based on current user - groups = ScmModel().get_repos_groups(groups) + repo_groups = [] if show_empty_group: repo_groups = [('-1', '-- no parent --')]