summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonathan Nieder <jrn@google.com>2018-01-04 13:38:37 -0800
committerDavid Pursehouse <dpursehouse@collab.net>2019-02-19 23:21:22 +0000
commitd99b848f3a9ec60daf46c466adf6f00d4fbc7b17 (patch)
tree91e89e96931795bb60e8bf5260b2de11e346f1cb
parent12c859f61f454c1b8d91ebbb746d318212d80695 (diff)
Allow omitting action in permission removal
Previously, in order to remove an access rule, an empty object could not be the value for the rule. This change adds a check for 'action' and so that it does not thow a null pointer exception. Example: Throws an error: { add: {}, remove: {'refs/heads/*: { permissions: { label-code-review: { rules: {xxx: {}} } } } } Does not throw an error: { add: {}, remove: {'refs/heads/*: { permissions: { label-code-review: { rules: {xxx: null} } } } } Other entities (ex: permissions) require an object for removal Example: Throws an error: { add: {}, remove: {'refs/heads/*: { permissions: { label-code-review: null } } } Does not throw an error: { add: {}, remove: {'refs/heads/*: { permissions: { label-code-review: {} } } } Bug: Issue 10106 Change-Id: Id6c4e21bcf5964421ed976f4531d2cf294082e37
-rw-r--r--gerrit-server/src/main/java/com/google/gerrit/server/project/SetAccessUtil.java4
1 files changed, 3 insertions, 1 deletions
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/project/SetAccessUtil.java b/gerrit-server/src/main/java/com/google/gerrit/server/project/SetAccessUtil.java
index 848d68cac1..b14008d97a 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/project/SetAccessUtil.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/project/SetAccessUtil.java
@@ -100,7 +100,9 @@ public class SetAccessUtil {
if (pri.min != null) {
r.setMin(pri.min);
}
- r.setAction(GetAccess.ACTION_TYPE.inverse().get(pri.action));
+ if (pri.action != null) {
+ r.setAction(GetAccess.ACTION_TYPE.inverse().get(pri.action));
+ }
if (pri.force != null) {
r.setForce(pri.force);
}