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>2023-12-21 13:01:29 +0000
commit84cfdaa26a1f0f68b2b83a71149e6d192f59ad50 (patch)
treefdf29b5dbddee9983f48c6cd9b35363f07e20848
parent7390975270b3af8b63b957138ec1473d05435419 (diff)
Add QtStage permission
QtStage permission controls stage and unstage functionality. Change-Id: Iea161ee5c2f86c48421c50ee8c6b87d8094d3c68 Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
-rw-r--r--java/com/google/gerrit/entities/Permission.java4
-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/utils/access-util.ts5
5 files changed, 13 insertions, 2 deletions
diff --git a/java/com/google/gerrit/entities/Permission.java b/java/com/google/gerrit/entities/Permission.java
index 2a34579f88..fd4879a29d 100644
--- a/java/com/google/gerrit/entities/Permission.java
+++ b/java/com/google/gerrit/entities/Permission.java
@@ -55,6 +55,7 @@ public abstract 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";
public static final boolean DEF_EXCLUSIVE_GROUP = false;
@@ -80,18 +81,19 @@ public abstract class Permission implements Comparable<Permission> {
NAMES_LC.add(FORGE_SERVER.toLowerCase(Locale.US));
NAMES_LC.add(LABEL.toLowerCase(Locale.US));
NAMES_LC.add(LABEL_AS.toLowerCase(Locale.US));
- NAMES_LC.add(REMOVE_LABEL.toLowerCase(Locale.US));
NAMES_LC.add(OWNER.toLowerCase(Locale.US));
NAMES_LC.add(PUSH.toLowerCase(Locale.US));
NAMES_LC.add(PUSH_MERGE.toLowerCase(Locale.US));
NAMES_LC.add(READ.toLowerCase(Locale.US));
NAMES_LC.add(REBASE.toLowerCase(Locale.US));
+ NAMES_LC.add(REMOVE_LABEL.toLowerCase(Locale.US));
NAMES_LC.add(REMOVE_REVIEWER.toLowerCase(Locale.US));
NAMES_LC.add(REVERT.toLowerCase(Locale.US));
NAMES_LC.add(SUBMIT.toLowerCase(Locale.US));
NAMES_LC.add(SUBMIT_AS.toLowerCase(Locale.US));
NAMES_LC.add(TOGGLE_WORK_IN_PROGRESS_STATE.toLowerCase(Locale.US));
NAMES_LC.add(VIEW_PRIVATE_CHANGES.toLowerCase(Locale.US));
+ NAMES_LC.add(QT_STAGE.toLowerCase(Locale.US));
LABEL_INDEX = NAMES_LC.indexOf(Permission.LABEL);
LABEL_AS_INDEX = NAMES_LC.indexOf(Permission.LABEL_AS.toLowerCase(Locale.US));
diff --git a/java/com/google/gerrit/server/permissions/ChangeControl.java b/java/com/google/gerrit/server/permissions/ChangeControl.java
index 993c68d52a..530c3c5677 100644
--- a/java/com/google/gerrit/server/permissions/ChangeControl.java
+++ b/java/com/google/gerrit/server/permissions/ChangeControl.java
@@ -280,6 +280,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 7741adac62..e1e06d3dd5 100644
--- a/java/com/google/gerrit/server/permissions/ChangePermission.java
+++ b/java/com/google/gerrit/server/permissions/ChangePermission.java
@@ -74,7 +74,8 @@ public enum ChangePermission implements ChangePermissionOrLabel {
REVERT,
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;
private final String hint;
diff --git a/java/com/google/gerrit/server/permissions/DefaultPermissionMappings.java b/java/com/google/gerrit/server/permissions/DefaultPermissionMappings.java
index 958de1b293..e6cd962aef 100644
--- a/java/com/google/gerrit/server/permissions/DefaultPermissionMappings.java
+++ b/java/com/google/gerrit/server/permissions/DefaultPermissionMappings.java
@@ -102,6 +102,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/polygerrit-ui/app/utils/access-util.ts b/polygerrit-ui/app/utils/access-util.ts
index a567dd9b20..dbbd333bdb 100644
--- a/polygerrit-ui/app/utils/access-util.ts
+++ b/polygerrit-ui/app/utils/access-util.ts
@@ -30,6 +30,7 @@ export enum AccessPermissionId {
SUBMIT_AS = 'submitAs',
TOGGLE_WIP_STATE = 'toggleWipState',
VIEW_PRIVATE_CHANGES = 'viewPrivateChanges',
+ QT_STAGE = 'stage',
PRIORITY = 'priority',
}
@@ -131,6 +132,10 @@ export const AccessPermissions: {[id: string]: AccessPermission} = {
id: AccessPermissionId.VIEW_PRIVATE_CHANGES,
name: 'View Private Changes',
},
+ [AccessPermissionId.QT_STAGE]: {
+ id: AccessPermissionId.QT_STAGE,
+ name: 'Stage',
+ },
};
export interface AccessPermission {