diff options
author | Jukka Jokiniva <jukka.jokiniva@qt.io> | 2019-01-14 09:51:31 +0200 |
---|---|---|
committer | Frederik Gladhorn <frederik.gladhorn@qt.io> | 2019-07-12 14:30:27 +0200 |
commit | 463ea6ef009efa4438745f1831849c48d9d6bb9c (patch) | |
tree | d7021f49a4f2f9671ff092b67c9f89ffbcc38547 | |
parent | 1e8b667c6fdec5ccc911ba0195878f1237b2d708 (diff) |
Add QtStage permission
QtStage permission controls stage and unstage functionality.
Change-Id: Iea161ee5c2f86c48421c50ee8c6b87d8094d3c68
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
6 files changed, 12 insertions, 2 deletions
diff --git a/java/com/google/gerrit/common/data/Permission.java b/java/com/google/gerrit/common/data/Permission.java index 3ba0ba75d1..f91df4b6dc 100644 --- a/java/com/google/gerrit/common/data/Permission.java +++ b/java/com/google/gerrit/common/data/Permission.java @@ -48,6 +48,7 @@ public class Permission implements Comparable<Permission> { public static final String SUBMIT_AS = "submitAs"; public static final String TOGGLE_WORK_IN_PROGRESS_STATE = "toggleWipState"; 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; @@ -81,6 +82,7 @@ public class Permission implements Comparable<Permission> { NAMES_LC.add(SUBMIT_AS.toLowerCase()); NAMES_LC.add(TOGGLE_WORK_IN_PROGRESS_STATE.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 ee36200283..c664e72da2 100644 --- a/java/com/google/gerrit/server/permissions/ChangeControl.java +++ b/java/com/google/gerrit/server/permissions/ChangeControl.java @@ -312,6 +312,8 @@ class ChangeControl { case REMOVE_REVIEWER: case SUBMIT_AS: return refControl.canPerform(changePermissionName(perm)); + case QT_STAGE: + return refControl.canPerform(Permission.QT_STAGE); } } catch (StorageException 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 2fba4ef039..458c01f63d 100644 --- a/java/com/google/gerrit/server/permissions/ChangePermission.java +++ b/java/com/google/gerrit/server/permissions/ChangePermission.java @@ -56,7 +56,8 @@ public enum ChangePermission implements ChangePermissionOrLabel { REBASE, SUBMIT, SUBMIT_AS("submit on behalf of other users"), - TOGGLE_WORK_IN_PROGRESS_STATE; + TOGGLE_WORK_IN_PROGRESS_STATE, + 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 82150831d3..f17cc05912 100644 --- a/java/com/google/gerrit/server/permissions/DefaultPermissionMappings.java +++ b/java/com/google/gerrit/server/permissions/DefaultPermissionMappings.java @@ -101,6 +101,7 @@ public class DefaultPermissionMappings { .put( ChangePermission.TOGGLE_WORK_IN_PROGRESS_STATE, Permission.TOGGLE_WORK_IN_PROGRESS_STATE) + .put(ChangePermission.QT_STAGE, Permission.QT_STAGE) .build(); private static <T extends Enum<T>> void checkMapContainsAllEnumValues( diff --git a/java/com/google/gerrit/server/query/change/InternalChangeQuery.java b/java/com/google/gerrit/server/query/change/InternalChangeQuery.java index b043b27a98..ad02b2587d 100644 --- a/java/com/google/gerrit/server/query/change/InternalChangeQuery.java +++ b/java/com/google/gerrit/server/query/change/InternalChangeQuery.java @@ -139,7 +139,7 @@ public class InternalChangeQuery extends InternalQuery<ChangeData, InternalChang return query(and(ref(branch), project(branch.getParentKey()), status(Change.Status.NEW))); } - public List<ChangeData> byBranchStatus(Branch.NameKey branch, Change.Status status) throws OrmException { + public List<ChangeData> byBranchStatus(Branch.NameKey branch, Change.Status status) { return query(and(ref(branch), project(branch.getParentKey()), status(status))); } 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 e949a870fb..929b7c2950 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', |