diff options
Diffstat (limited to 'cli/ops/permissions.rs')
-rw-r--r-- | cli/ops/permissions.rs | 103 |
1 files changed, 0 insertions, 103 deletions
diff --git a/cli/ops/permissions.rs b/cli/ops/permissions.rs deleted file mode 100644 index 7474c0e37..000000000 --- a/cli/ops/permissions.rs +++ /dev/null @@ -1,103 +0,0 @@ -// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license. - -use crate::permissions::Permissions; -use deno_core::error::custom_error; -use deno_core::error::AnyError; -use deno_core::serde_json; -use deno_core::serde_json::json; -use deno_core::serde_json::Value; -use deno_core::OpState; -use deno_core::ZeroCopyBuf; -use serde::Deserialize; -use std::path::Path; - -pub fn init(rt: &mut deno_core::JsRuntime) { - super::reg_json_sync(rt, "op_query_permission", op_query_permission); - super::reg_json_sync(rt, "op_revoke_permission", op_revoke_permission); - super::reg_json_sync(rt, "op_request_permission", op_request_permission); -} - -#[derive(Deserialize)] -struct PermissionArgs { - name: String, - url: Option<String>, - path: Option<String>, -} - -pub fn op_query_permission( - state: &mut OpState, - args: Value, - _zero_copy: &mut [ZeroCopyBuf], -) -> Result<Value, AnyError> { - let args: PermissionArgs = serde_json::from_value(args)?; - let permissions = state.borrow::<Permissions>(); - let path = args.path.as_deref(); - let perm = match args.name.as_ref() { - "read" => permissions.query_read(&path.as_deref().map(Path::new)), - "write" => permissions.query_write(&path.as_deref().map(Path::new)), - "net" => permissions.query_net_url(&args.url.as_deref())?, - "env" => permissions.query_env(), - "run" => permissions.query_run(), - "plugin" => permissions.query_plugin(), - "hrtime" => permissions.query_hrtime(), - n => { - return Err(custom_error( - "ReferenceError", - format!("No such permission name: {}", n), - )) - } - }; - Ok(json!({ "state": perm.to_string() })) -} - -pub fn op_revoke_permission( - state: &mut OpState, - args: Value, - _zero_copy: &mut [ZeroCopyBuf], -) -> Result<Value, AnyError> { - let args: PermissionArgs = serde_json::from_value(args)?; - let permissions = state.borrow_mut::<Permissions>(); - let path = args.path.as_deref(); - let perm = match args.name.as_ref() { - "read" => permissions.revoke_read(&path.as_deref().map(Path::new)), - "write" => permissions.revoke_write(&path.as_deref().map(Path::new)), - "net" => permissions.revoke_net(&args.url.as_deref())?, - "env" => permissions.revoke_env(), - "run" => permissions.revoke_run(), - "plugin" => permissions.revoke_plugin(), - "hrtime" => permissions.revoke_hrtime(), - n => { - return Err(custom_error( - "ReferenceError", - format!("No such permission name: {}", n), - )) - } - }; - Ok(json!({ "state": perm.to_string() })) -} - -pub fn op_request_permission( - state: &mut OpState, - args: Value, - _zero_copy: &mut [ZeroCopyBuf], -) -> Result<Value, AnyError> { - let args: PermissionArgs = serde_json::from_value(args)?; - let permissions = state.borrow_mut::<Permissions>(); - let path = args.path.as_deref(); - let perm = match args.name.as_ref() { - "read" => permissions.request_read(&path.as_deref().map(Path::new)), - "write" => permissions.request_write(&path.as_deref().map(Path::new)), - "net" => permissions.request_net(&args.url.as_deref())?, - "env" => permissions.request_env(), - "run" => permissions.request_run(), - "plugin" => permissions.request_plugin(), - "hrtime" => permissions.request_hrtime(), - n => { - return Err(custom_error( - "ReferenceError", - format!("No such permission name: {}", n), - )) - } - }; - Ok(json!({ "state": perm.to_string() })) -} |