Enforce local KV write capabilities
This commit is contained in:
parent
1ab24631cd
commit
5751748458
8 changed files with 118 additions and 10 deletions
|
|
@ -795,6 +795,7 @@ fn kv_create_set_get_use_local_store() {
|
|||
name: "prefs".to_owned(),
|
||||
key: "apps/foo/theme".to_owned(),
|
||||
value: "dark".to_owned(),
|
||||
subject: None,
|
||||
},
|
||||
)
|
||||
.expect("set kv");
|
||||
|
|
@ -837,6 +838,51 @@ fn kv_create_set_get_use_local_store() {
|
|||
other => panic!("unexpected response: {other:?}"),
|
||||
}
|
||||
|
||||
assert!(
|
||||
geth_node::handle_request(
|
||||
&node,
|
||||
geth_control::ControlRequest::KvSet {
|
||||
name: "prefs".to_owned(),
|
||||
key: "apps/foo/accent".to_owned(),
|
||||
value: "blue".to_owned(),
|
||||
subject: Some("node:tablet".to_owned()),
|
||||
},
|
||||
)
|
||||
.is_err()
|
||||
);
|
||||
geth_node::handle_request(
|
||||
&node,
|
||||
geth_control::ControlRequest::AuthGrant {
|
||||
subject: "node:tablet".to_owned(),
|
||||
resource: "resource:kv:prefs".to_owned(),
|
||||
capability: "kv.write_prefix:apps/foo/".to_owned(),
|
||||
grant_id: None,
|
||||
},
|
||||
)
|
||||
.expect("grant prefix write");
|
||||
geth_node::handle_request(
|
||||
&node,
|
||||
geth_control::ControlRequest::KvSet {
|
||||
name: "prefs".to_owned(),
|
||||
key: "apps/foo/accent".to_owned(),
|
||||
value: "blue".to_owned(),
|
||||
subject: Some("node:tablet".to_owned()),
|
||||
},
|
||||
)
|
||||
.expect("authorized prefix write");
|
||||
assert!(
|
||||
geth_node::handle_request(
|
||||
&node,
|
||||
geth_control::ControlRequest::KvSet {
|
||||
name: "prefs".to_owned(),
|
||||
key: "apps/bar/accent".to_owned(),
|
||||
value: "red".to_owned(),
|
||||
subject: Some("node:tablet".to_owned()),
|
||||
},
|
||||
)
|
||||
.is_err()
|
||||
);
|
||||
|
||||
assert!(
|
||||
geth_node::handle_request(
|
||||
&node,
|
||||
|
|
@ -853,6 +899,7 @@ fn kv_create_set_get_use_local_store() {
|
|||
name: "missing".to_owned(),
|
||||
key: "apps/foo/theme".to_owned(),
|
||||
value: "dark".to_owned(),
|
||||
subject: None,
|
||||
},
|
||||
)
|
||||
.is_err()
|
||||
|
|
|
|||
Loading…
Reference in a new issue