diff options
author | Jukka Jokiniva <jukka.jokiniva@qt.io> | 2023-09-11 16:54:13 +0300 |
---|---|---|
committer | Jukka Jokiniva <jukka.jokiniva@qt.io> | 2023-10-10 11:53:41 +0000 |
commit | a3851bc1973afc649b9b109a72c4a59d3f8871fe (patch) | |
tree | 44c3cae57301991978bc878af1c5d604b47f3412 | |
parent | 2fab4dcc49e9c541fb247bc61929c7a548af52bd (diff) |
Allow checking Stage permission for a refv3.7.4-based
Add stage to the list of ref permissions. This allows
check.access REST API calls for staging restrictions in
a branch. This is needed by the cherry-pick bot to
determine if a branch is "open" or not.
Task-number: QTQAINFRA-5822
Change-Id: Ie6c58a5f40a60e811d04d02c870440626e7a329b
Reviewed-by: Daniel Smith <Daniel.Smith@qt.io>
3 files changed, 11 insertions, 1 deletions
diff --git a/java/com/google/gerrit/server/permissions/DefaultPermissionMappings.java b/java/com/google/gerrit/server/permissions/DefaultPermissionMappings.java index 3ab68d73fd..4d887bb3a8 100644 --- a/java/com/google/gerrit/server/permissions/DefaultPermissionMappings.java +++ b/java/com/google/gerrit/server/permissions/DefaultPermissionMappings.java @@ -84,6 +84,7 @@ public class DefaultPermissionMappings { .put(RefPermission.CREATE_TAG, Permission.CREATE_TAG) .put(RefPermission.CREATE_SIGNED_TAG, Permission.CREATE_SIGNED_TAG) .put(RefPermission.READ_PRIVATE_CHANGES, Permission.VIEW_PRIVATE_CHANGES) + .put(RefPermission.QT_STAGE, Permission.QT_STAGE) .build(); private static final ImmutableBiMap<ChangePermission, String> CHANGE_PERMISSIONS = diff --git a/java/com/google/gerrit/server/permissions/RefControl.java b/java/com/google/gerrit/server/permissions/RefControl.java index 478ba5c582..d75a4729d6 100644 --- a/java/com/google/gerrit/server/permissions/RefControl.java +++ b/java/com/google/gerrit/server/permissions/RefControl.java @@ -594,6 +594,10 @@ class RefControl { case WRITE_CONFIG: pde.setAdvice("You need 'Write' rights on refs/meta/config."); break; + + case QT_STAGE: + pde.setAdvice("You need 'Stage' rights on " + RefNames.shortName(refName) ); + break; } throw pde; } @@ -673,6 +677,9 @@ class RefControl { && canForgeCommitter() && canForgeGerritServerIdentity() && canUploadMerges(); + + case QT_STAGE: + return canPerform(refPermissionName(perm)); } throw new PermissionBackendException(perm + " unsupported"); } diff --git a/java/com/google/gerrit/server/permissions/RefPermission.java b/java/com/google/gerrit/server/permissions/RefPermission.java index 09eed2421d..d9b865f0ee 100644 --- a/java/com/google/gerrit/server/permissions/RefPermission.java +++ b/java/com/google/gerrit/server/permissions/RefPermission.java @@ -72,7 +72,9 @@ public enum RefPermission implements GerritPermission { READ_CONFIG("read ref config"), /** Write access to ref's config section in {@code project.config}. */ - WRITE_CONFIG("write ref config"); + WRITE_CONFIG("write ref config"), + + QT_STAGE; private final String description; |