##// END OF EJS Templates
filter out repo groups choices to only ones that you have write+ access to. Before it was read+ access and you got proper...
marcink -
r3239:a9565b8b beta
parent child Browse files
Show More
@@ -45,7 +45,7 b' from rhodecode.model.meta import Session'
45 from rhodecode.model.db import User, Repository, UserFollowing, RepoGroup,\
45 from rhodecode.model.db import User, Repository, UserFollowing, RepoGroup,\
46 RhodeCodeSetting
46 RhodeCodeSetting
47 from rhodecode.model.forms import RepoForm
47 from rhodecode.model.forms import RepoForm
48 from rhodecode.model.scm import ScmModel
48 from rhodecode.model.scm import ScmModel, GroupList
49 from rhodecode.model.repo import RepoModel
49 from rhodecode.model.repo import RepoModel
50 from rhodecode.lib.compat import json
50 from rhodecode.lib.compat import json
51 from sqlalchemy.sql.expression import func
51 from sqlalchemy.sql.expression import func
@@ -68,7 +68,9 b' class ReposController(BaseController):'
68 super(ReposController, self).__before__()
68 super(ReposController, self).__before__()
69
69
70 def __load_defaults(self):
70 def __load_defaults(self):
71 c.repo_groups = RepoGroup.groups_choices(check_perms=True)
71 acl_groups = GroupList(RepoGroup.query().all(),
72 perm_set=['group.write', 'group.admin'])
73 c.repo_groups = RepoGroup.groups_choices(groups=acl_groups)
72 c.repo_groups_choices = map(lambda k: unicode(k[0]), c.repo_groups)
74 c.repo_groups_choices = map(lambda k: unicode(k[0]), c.repo_groups)
73
75
74 repo_model = RepoModel()
76 repo_model = RepoModel()
@@ -46,7 +46,7 b' from rhodecode.model.db import RhodeCode'
46 RhodeCodeSetting, PullRequest, PullRequestReviewers
46 RhodeCodeSetting, PullRequest, PullRequestReviewers
47 from rhodecode.model.forms import UserForm, ApplicationSettingsForm, \
47 from rhodecode.model.forms import UserForm, ApplicationSettingsForm, \
48 ApplicationUiSettingsForm, ApplicationVisualisationForm
48 ApplicationUiSettingsForm, ApplicationVisualisationForm
49 from rhodecode.model.scm import ScmModel
49 from rhodecode.model.scm import ScmModel, GroupList
50 from rhodecode.model.user import UserModel
50 from rhodecode.model.user import UserModel
51 from rhodecode.model.repo import RepoModel
51 from rhodecode.model.repo import RepoModel
52 from rhodecode.model.db import User
52 from rhodecode.model.db import User
@@ -483,7 +483,9 b' class SettingsController(BaseController)'
483 def create_repository(self):
483 def create_repository(self):
484 """GET /_admin/create_repository: Form to create a new item"""
484 """GET /_admin/create_repository: Form to create a new item"""
485
485
486 c.repo_groups = RepoGroup.groups_choices(check_perms=True)
486 acl_groups = GroupList(RepoGroup.query().all(),
487 perm_set=['group.write', 'group.admin'])
488 c.repo_groups = RepoGroup.groups_choices(groups=acl_groups)
487 c.repo_groups_choices = map(lambda k: unicode(k[0]), c.repo_groups)
489 c.repo_groups_choices = map(lambda k: unicode(k[0]), c.repo_groups)
488 choices, c.landing_revs = ScmModel().get_repo_landing_revs()
490 choices, c.landing_revs = ScmModel().get_repo_landing_revs()
489
491
@@ -41,7 +41,7 b' from rhodecode.lib.base import BaseRepoC'
41 from rhodecode.model.db import Repository, RepoGroup, UserFollowing, User
41 from rhodecode.model.db import Repository, RepoGroup, UserFollowing, User
42 from rhodecode.model.repo import RepoModel
42 from rhodecode.model.repo import RepoModel
43 from rhodecode.model.forms import RepoForkForm
43 from rhodecode.model.forms import RepoForkForm
44 from rhodecode.model.scm import ScmModel
44 from rhodecode.model.scm import ScmModel, GroupList
45 from rhodecode.lib.utils2 import safe_int
45 from rhodecode.lib.utils2 import safe_int
46
46
47 log = logging.getLogger(__name__)
47 log = logging.getLogger(__name__)
@@ -54,7 +54,9 b' class ForksController(BaseRepoController'
54 super(ForksController, self).__before__()
54 super(ForksController, self).__before__()
55
55
56 def __load_defaults(self):
56 def __load_defaults(self):
57 c.repo_groups = RepoGroup.groups_choices(check_perms=True)
57 acl_groups = GroupList(RepoGroup.query().all(),
58 perm_set=['group.write', 'group.admin'])
59 c.repo_groups = RepoGroup.groups_choices(groups=acl_groups)
58 c.repo_groups_choices = map(lambda k: unicode(k[0]), c.repo_groups)
60 c.repo_groups_choices = map(lambda k: unicode(k[0]), c.repo_groups)
59 choices, c.landing_revs = ScmModel().get_repo_landing_revs()
61 choices, c.landing_revs = ScmModel().get_repo_landing_revs()
60 c.landing_revs_choices = choices
62 c.landing_revs_choices = choices
@@ -44,7 +44,7 b' from rhodecode.model.forms import RepoSe'
44 from rhodecode.model.repo import RepoModel
44 from rhodecode.model.repo import RepoModel
45 from rhodecode.model.db import RepoGroup, Repository
45 from rhodecode.model.db import RepoGroup, Repository
46 from rhodecode.model.meta import Session
46 from rhodecode.model.meta import Session
47 from rhodecode.model.scm import ScmModel
47 from rhodecode.model.scm import ScmModel, GroupList
48
48
49 log = logging.getLogger(__name__)
49 log = logging.getLogger(__name__)
50
50
@@ -56,7 +56,9 b' class SettingsController(BaseRepoControl'
56 super(SettingsController, self).__before__()
56 super(SettingsController, self).__before__()
57
57
58 def __load_defaults(self):
58 def __load_defaults(self):
59 c.repo_groups = RepoGroup.groups_choices(check_perms=True)
59 acl_groups = GroupList(RepoGroup.query().all(),
60 perm_set=['group.write', 'group.admin'])
61 c.repo_groups = RepoGroup.groups_choices(groups=acl_groups)
60 c.repo_groups_choices = map(lambda k: unicode(k[0]), c.repo_groups)
62 c.repo_groups_choices = map(lambda k: unicode(k[0]), c.repo_groups)
61
63
62 repo_model = RepoModel()
64 repo_model = RepoModel()
@@ -73,8 +75,7 b' class SettingsController(BaseRepoControl'
73 """
75 """
74 self.__load_defaults()
76 self.__load_defaults()
75
77
76 c.repo_info = db_repo = Repository.get_by_repo_name(repo_name)
78 c.repo_info = Repository.get_by_repo_name(repo_name)
77 repo = db_repo.scm_instance
78
79
79 if c.repo_info is None:
80 if c.repo_info is None:
80 h.not_mapped_error(repo_name)
81 h.not_mapped_error(repo_name)
@@ -1177,15 +1177,11 b' class RepoGroup(Base, BaseModel):'
1177 self.group_name)
1177 self.group_name)
1178
1178
1179 @classmethod
1179 @classmethod
1180 def groups_choices(cls, groups=None, check_perms=False, show_empty_group=True):
1180 def groups_choices(cls, groups=None, show_empty_group=True):
1181 from webhelpers.html import literal as _literal
1181 from webhelpers.html import literal as _literal
1182 from rhodecode.model.scm import ScmModel
1183 if not groups:
1182 if not groups:
1184 groups = cls.query().all()
1183 groups = cls.query().all()
1185 if check_perms:
1184
1186 #filter group user have access to, it's done
1187 #magically inside ScmModel based on current user
1188 groups = ScmModel().get_repos_groups(groups)
1189 repo_groups = []
1185 repo_groups = []
1190 if show_empty_group:
1186 if show_empty_group:
1191 repo_groups = [('-1', '-- no parent --')]
1187 repo_groups = [('-1', '-- no parent --')]
General Comments 0
You need to be logged in to leave comments. Login now