summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJukka Jokiniva <jukka.jokiniva@qt.io>2019-01-14 09:51:31 +0200
committerJukka Jokiniva <jukka.jokiniva@qt.io>2019-03-20 12:31:29 +0200
commit13d5e999ea8b569ff88e115f250ec47bc882494a (patch)
treefb21a6cd77e99c2124e4962d68441441175a641b
parent8a4fcd2c3ecce27ec970f2c318aef20a1425dae1 (diff)
Add QtStage permission
QtStage permission controls stage and unstage functionality. Change-Id: Iea161ee5c2f86c48421c50ee8c6b87d8094d3c68 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
-rw-r--r--java/com/google/gerrit/common/data/Permission.java2
-rw-r--r--java/com/google/gerrit/server/permissions/ChangeControl.java2
-rw-r--r--java/com/google/gerrit/server/permissions/ChangePermission.java3
-rw-r--r--java/com/google/gerrit/server/permissions/DefaultPermissionMappings.java1
-rw-r--r--polygerrit-ui/app/behaviors/gr-access-behavior/gr-access-behavior.html4
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',