changeset 8553:c19e720cbb21

permissions: move hg.create.repository knowledge to AvailableRepoGroupChoices - it already knows hg.admin
author Mads Kiilerich <mads@kiilerich.com>
date Sun, 12 Apr 2020 01:07:32 +0200
parents d79de6c61359
children 2ce710e81e61
files kallithea/controllers/admin/repo_groups.py kallithea/controllers/admin/repos.py kallithea/controllers/forks.py kallithea/model/scm.py
diffstat 4 files changed, 5 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/kallithea/controllers/admin/repo_groups.py	Sun Apr 12 01:35:05 2020 +0200
+++ b/kallithea/controllers/admin/repo_groups.py	Sun Apr 12 01:07:32 2020 +0200
@@ -63,7 +63,7 @@
         exclude is used for not moving group to itself TODO: also exclude descendants
         Note: only admin can create top level groups
         """
-        repo_groups = AvailableRepoGroupChoices([], 'admin', extras)
+        repo_groups = AvailableRepoGroupChoices('admin', extras)
         exclude_group_ids = set(rg.group_id for rg in exclude)
         c.repo_groups = [rg for rg in repo_groups
                          if rg[0] not in exclude_group_ids]
--- a/kallithea/controllers/admin/repos.py	Sun Apr 12 01:35:05 2020 +0200
+++ b/kallithea/controllers/admin/repos.py	Sun Apr 12 01:07:32 2020 +0200
@@ -76,14 +76,13 @@
         return repo_obj
 
     def __load_defaults(self, repo=None):
-        top_perms = ['hg.create.repository']
         if HasPermissionAny('hg.create.write_on_repogroup.true')():
             repo_group_perm_level = 'write'
         else:
             repo_group_perm_level = 'admin'
         extras = [] if repo is None else [repo.group]
 
-        c.repo_groups = AvailableRepoGroupChoices(top_perms, repo_group_perm_level, extras)
+        c.repo_groups = AvailableRepoGroupChoices(repo_group_perm_level, extras)
 
         c.landing_revs_choices, c.landing_revs = ScmModel().get_repo_landing_revs(repo)
 
--- a/kallithea/controllers/forks.py	Sun Apr 12 01:35:05 2020 +0200
+++ b/kallithea/controllers/forks.py	Sun Apr 12 01:07:32 2020 +0200
@@ -58,7 +58,7 @@
             repo_group_perm_level = 'write'
         else:
             repo_group_perm_level = 'admin'
-        c.repo_groups = AvailableRepoGroupChoices(['hg.create.repository'], repo_group_perm_level)
+        c.repo_groups = AvailableRepoGroupChoices(repo_group_perm_level)
 
         c.landing_revs_choices, c.landing_revs = ScmModel().get_repo_landing_revs()
 
--- a/kallithea/model/scm.py	Sun Apr 12 01:35:05 2020 +0200
+++ b/kallithea/model/scm.py	Sun Apr 12 01:07:32 2020 +0200
@@ -748,7 +748,7 @@
                 log.debug('skipping writing hook file')
 
 
-def AvailableRepoGroupChoices(top_perms, repo_group_perm_level, extras=()):
+def AvailableRepoGroupChoices(repo_group_perm_level, extras=()):
     """Return group_id,string tuples with choices for all the repo groups where
     the user has the necessary permissions.
 
@@ -759,7 +759,7 @@
         groups.append(None)
     else:
         groups = list(RepoGroupList(groups, perm_level=repo_group_perm_level))
-        if top_perms and HasPermissionAny(*top_perms)('available repo groups'):
+        if HasPermissionAny('hg.create.repository')('available repo groups'):
             groups.append(None)
         for extra in extras:
             if not any(rg == extra for rg in groups):