diff options
Diffstat (limited to 'rhodecode/model/db.py')
-rwxr-xr-x | rhodecode/model/db.py | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/rhodecode/model/db.py b/rhodecode/model/db.py index 5e0b7e12..0af193e4 100755 --- a/rhodecode/model/db.py +++ b/rhodecode/model/db.py @@ -1027,14 +1027,20 @@ class RepoGroup(Base, BaseModel): self.group_name) @classmethod - def groups_choices(cls): + def groups_choices(cls, check_perms=False): from webhelpers.html import literal as _literal + from rhodecode.model.scm import ScmModel + 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 = [('', '')] sep = ' » ' _name = lambda k: _literal(sep.join(k)) repo_groups.extend([(x.group_id, _name(x.full_path_splitted)) - for x in cls.query().all()]) + for x in groups]) repo_groups = sorted(repo_groups, key=lambda t: t[1].split(sep)[0]) return repo_groups |