diff options
author | Nayeem Rahman <muhammed.9939@gmail.com> | 2020-01-20 14:45:44 +0000 |
---|---|---|
committer | Ry Dahl <ry@tinyclouds.org> | 2020-01-20 09:45:44 -0500 |
commit | 7f80f9db3f4c3b064b230adfec7ff958fc195da6 (patch) | |
tree | bda74057420a1b51ce293918b6e67123715ee945 /cli/ops/permissions.rs | |
parent | 60b53fd6b6dc2af83a64c332b9f3a1926f43d631 (diff) |
refactor: Improve path handling in permission checks (#3714)
Diffstat (limited to 'cli/ops/permissions.rs')
-rw-r--r-- | cli/ops/permissions.rs | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/cli/ops/permissions.rs b/cli/ops/permissions.rs index 6a0186acc..172ce97b1 100644 --- a/cli/ops/permissions.rs +++ b/cli/ops/permissions.rs @@ -5,6 +5,7 @@ use crate::fs as deno_fs; use crate::ops::json_op; use crate::state::ThreadSafeState; use deno_core::*; +use std::path::Path; pub fn init(i: &mut Isolate, s: &ThreadSafeState) { i.register_op( @@ -29,9 +30,8 @@ struct PermissionArgs { } fn resolve_path(path: &str) -> String { - deno_fs::resolve_from_cwd(path) + deno_fs::resolve_from_cwd(Path::new(path)) .unwrap() - .0 .to_str() .unwrap() .to_string() @@ -48,7 +48,7 @@ pub fn op_query_permission( let perm = permissions.get_permission_state( &args.name, &args.url.as_ref().map(String::as_str), - &resolved_path.as_ref().map(String::as_str), + &resolved_path.as_ref().map(String::as_str).map(Path::new), )?; Ok(JsonOp::Sync(json!({ "state": perm.to_string() }))) } @@ -74,7 +74,7 @@ pub fn op_revoke_permission( let perm = permissions.get_permission_state( &args.name, &args.url.as_ref().map(String::as_str), - &resolved_path.as_ref().map(String::as_str), + &resolved_path.as_ref().map(String::as_str).map(Path::new), )?; Ok(JsonOp::Sync(json!({ "state": perm.to_string() }))) } @@ -89,12 +89,12 @@ pub fn op_request_permission( let resolved_path = args.path.as_ref().map(String::as_str).map(resolve_path); let perm = match args.name.as_ref() { "run" => Ok(permissions.request_run()), - "read" => { - Ok(permissions.request_read(&resolved_path.as_ref().map(String::as_str))) - } - "write" => { - Ok(permissions.request_write(&resolved_path.as_ref().map(String::as_str))) - } + "read" => Ok(permissions.request_read( + &resolved_path.as_ref().map(String::as_str).map(Path::new), + )), + "write" => Ok(permissions.request_write( + &resolved_path.as_ref().map(String::as_str).map(Path::new), + )), "net" => permissions.request_net(&args.url.as_ref().map(String::as_str)), "env" => Ok(permissions.request_env()), "plugin" => Ok(permissions.request_plugin()), |