diff options
author | Ryan Dahl <ry@tinyclouds.org> | 2019-08-24 13:20:48 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-08-24 13:20:48 -0700 |
commit | 2235dd795d3cc6c24ff1bdd1bbdcd110b4b0bdfc (patch) | |
tree | a5811adc062cbb1c66f05c863c9be245cf4fd2d2 /cli/ops/permissions.rs | |
parent | bdc0a13261deaa3748f51d9948b4e7b92864c324 (diff) |
Revert json ops (#2814)
* Revert "port more ops to JSON (#2809)"
This reverts commit 137f33733d365026903d40e7cde6e34ac6c36dcf.
* Revert "port ops to JSON: compiler, errors, fetch, files (#2804)"
This reverts commit 79f82cf10ed1dbf91346994250d7311a4d74377a.
* Revert "Port rest of os ops to JSON (#2802)"
This reverts commit 5b2baa5c990fbeae747e952c5dcd7a5369e950b1.
Diffstat (limited to 'cli/ops/permissions.rs')
-rw-r--r-- | cli/ops/permissions.rs | 62 |
1 files changed, 38 insertions, 24 deletions
diff --git a/cli/ops/permissions.rs b/cli/ops/permissions.rs index 5d14f39be..6249581fb 100644 --- a/cli/ops/permissions.rs +++ b/cli/ops/permissions.rs @@ -1,35 +1,50 @@ // Copyright 2018-2019 the Deno authors. All rights reserved. MIT license. -use super::dispatch_json::{Deserialize, JsonOp, Value}; +use super::dispatch_flatbuffers::serialize_response; +use super::utils::*; +use crate::msg; use crate::state::ThreadSafeState; use deno::*; +use flatbuffers::FlatBufferBuilder; pub fn op_permissions( state: &ThreadSafeState, - _args: Value, - _zero_copy: Option<PinnedBuf>, -) -> Result<JsonOp, ErrBox> { - Ok(JsonOp::Sync(json!({ - "run": state.permissions.allows_run(), - "read": state.permissions.allows_read(), - "write": state.permissions.allows_write(), - "net": state.permissions.allows_net(), - "env": state.permissions.allows_env(), - "hrtime": state.permissions.allows_hrtime(), - }))) -} - -#[derive(Deserialize)] -struct RevokePermissionArgs { - permission: String, + base: &msg::Base<'_>, + data: Option<PinnedBuf>, +) -> CliOpResult { + assert!(data.is_none()); + let cmd_id = base.cmd_id(); + let builder = &mut FlatBufferBuilder::new(); + let inner = msg::PermissionsRes::create( + builder, + &msg::PermissionsResArgs { + run: state.permissions.allows_run(), + read: state.permissions.allows_read(), + write: state.permissions.allows_write(), + net: state.permissions.allows_net(), + env: state.permissions.allows_env(), + hrtime: state.permissions.allows_hrtime(), + }, + ); + let response_buf = serialize_response( + cmd_id, + builder, + msg::BaseArgs { + inner: Some(inner.as_union_value()), + inner_type: msg::Any::PermissionsRes, + ..Default::default() + }, + ); + ok_buf(response_buf) } pub fn op_revoke_permission( state: &ThreadSafeState, - args: Value, - _zero_copy: Option<PinnedBuf>, -) -> Result<JsonOp, ErrBox> { - let args: RevokePermissionArgs = serde_json::from_value(args)?; - let permission = args.permission.as_ref(); + base: &msg::Base<'_>, + data: Option<PinnedBuf>, +) -> CliOpResult { + assert!(data.is_none()); + let inner = base.inner_as_permission_revoke().unwrap(); + let permission = inner.permission().unwrap(); match permission { "run" => state.permissions.revoke_run(), "read" => state.permissions.revoke_read(), @@ -39,6 +54,5 @@ pub fn op_revoke_permission( "hrtime" => state.permissions.revoke_hrtime(), _ => Ok(()), }?; - - Ok(JsonOp::Sync(json!({}))) + ok_buf(empty_buf()) } |