diff options
author | Jonathan Nieder <jrn@google.com> | 2018-01-04 13:38:37 -0800 |
---|---|---|
committer | David Pursehouse <dpursehouse@collab.net> | 2019-02-19 23:21:22 +0000 |
commit | d99b848f3a9ec60daf46c466adf6f00d4fbc7b17 (patch) | |
tree | 91e89e96931795bb60e8bf5260b2de11e346f1cb | |
parent | 12c859f61f454c1b8d91ebbb746d318212d80695 (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.java | 4 |
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); } |