diff options
author | Jukka Jokiniva <jukka.jokiniva@qt.io> | 2019-01-14 09:51:31 +0200 |
---|---|---|
committer | Jukka Jokiniva <jukka.jokiniva@qt.io> | 2019-03-20 12:31:29 +0200 |
commit | 13d5e999ea8b569ff88e115f250ec47bc882494a (patch) | |
tree | fb21a6cd77e99c2124e4962d68441441175a641b | |
parent | 8a4fcd2c3ecce27ec970f2c318aef20a1425dae1 (diff) |
Add QtStage permission
QtStage permission controls stage and unstage functionality.
Change-Id: Iea161ee5c2f86c48421c50ee8c6b87d8094d3c68
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
5 files changed, 11 insertions, 1 deletions
diff --git a/java/com/google/gerrit/common/data/Permission.java b/java/com/google/gerrit/common/data/Permission.java index de6108e0b1..88d791610d 100644 --- a/java/com/google/gerrit/common/data/Permission.java +++ b/java/com/google/gerrit/common/data/Permission.java @@ -46,6 +46,7 @@ public class Permission implements Comparable<Permission> { public static final String SUBMIT = "submit"; public static final String SUBMIT_AS = "submitAs"; public static final String VIEW_PRIVATE_CHANGES = "viewPrivateChanges"; + public static final String QT_STAGE = "stage"; private static final List<String> NAMES_LC; private static final int LABEL_INDEX; @@ -78,6 +79,7 @@ public class Permission implements Comparable<Permission> { NAMES_LC.add(SUBMIT.toLowerCase()); NAMES_LC.add(SUBMIT_AS.toLowerCase()); NAMES_LC.add(VIEW_PRIVATE_CHANGES.toLowerCase()); + NAMES_LC.add(QT_STAGE.toLowerCase()); LABEL_INDEX = NAMES_LC.indexOf(Permission.LABEL); LABEL_AS_INDEX = NAMES_LC.indexOf(Permission.LABEL_AS.toLowerCase()); diff --git a/java/com/google/gerrit/server/permissions/ChangeControl.java b/java/com/google/gerrit/server/permissions/ChangeControl.java index f4e659eb7a..7de6be4580 100644 --- a/java/com/google/gerrit/server/permissions/ChangeControl.java +++ b/java/com/google/gerrit/server/permissions/ChangeControl.java @@ -320,6 +320,8 @@ class ChangeControl { case REMOVE_REVIEWER: case SUBMIT_AS: return refControl.canPerform(changePermissionName(perm)); + case QT_STAGE: + return refControl.canPerform(Permission.QT_STAGE); } } catch (OrmException e) { throw new PermissionBackendException("unavailable", e); diff --git a/java/com/google/gerrit/server/permissions/ChangePermission.java b/java/com/google/gerrit/server/permissions/ChangePermission.java index ca1c460b73..ff0ddd13f5 100644 --- a/java/com/google/gerrit/server/permissions/ChangePermission.java +++ b/java/com/google/gerrit/server/permissions/ChangePermission.java @@ -55,7 +55,8 @@ public enum ChangePermission implements ChangePermissionOrLabel { */ REBASE, SUBMIT, - SUBMIT_AS("submit on behalf of other users"); + SUBMIT_AS("submit on behalf of other users"), + QT_STAGE("stage change for CI"); private final String description; diff --git a/java/com/google/gerrit/server/permissions/DefaultPermissionMappings.java b/java/com/google/gerrit/server/permissions/DefaultPermissionMappings.java index ece29df268..b7b1f62428 100644 --- a/java/com/google/gerrit/server/permissions/DefaultPermissionMappings.java +++ b/java/com/google/gerrit/server/permissions/DefaultPermissionMappings.java @@ -97,6 +97,7 @@ public class DefaultPermissionMappings { .put(ChangePermission.REBASE, Permission.REBASE) .put(ChangePermission.SUBMIT, Permission.SUBMIT) .put(ChangePermission.SUBMIT_AS, Permission.SUBMIT_AS) + .put(ChangePermission.QT_STAGE, Permission.QT_STAGE) .build(); private static <T extends Enum<T>> void checkMapContainsAllEnumValues( diff --git a/polygerrit-ui/app/behaviors/gr-access-behavior/gr-access-behavior.html b/polygerrit-ui/app/behaviors/gr-access-behavior/gr-access-behavior.html index fb0c685a58..4d30d59b92 100644 --- a/polygerrit-ui/app/behaviors/gr-access-behavior/gr-access-behavior.html +++ b/polygerrit-ui/app/behaviors/gr-access-behavior/gr-access-behavior.html @@ -112,6 +112,10 @@ limitations under the License. id: 'removeReviewer', name: 'Remove Reviewer', }, + stage: { + id: 'stage', + name: 'QtStage', + }, submit: { id: 'submit', name: 'Submit', |