summaryrefslogtreecommitdiff
path: root/cli/permissions.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/permissions.rs')
-rw-r--r--cli/permissions.rs18
1 files changed, 11 insertions, 7 deletions
diff --git a/cli/permissions.rs b/cli/permissions.rs
index 98b7e7a33..868f0e009 100644
--- a/cli/permissions.rs
+++ b/cli/permissions.rs
@@ -102,9 +102,9 @@ impl Default for PermissionState {
pub struct DenoPermissions {
// Keep in sync with cli/js/permissions.ts
pub allow_read: PermissionState,
- pub read_whitelist: HashSet<String>,
+ pub read_whitelist: HashSet<PathBuf>,
pub allow_write: PermissionState,
- pub write_whitelist: HashSet<String>,
+ pub write_whitelist: HashSet<PathBuf>,
pub allow_net: PermissionState,
pub net_whitelist: HashSet<String>,
pub allow_env: PermissionState,
@@ -349,10 +349,10 @@ fn log_perm_access(message: &str) {
}
}
-fn check_path_white_list(path: &Path, white_list: &HashSet<String>) -> bool {
+fn check_path_white_list(path: &Path, white_list: &HashSet<PathBuf>) -> bool {
let mut path_buf = PathBuf::from(path);
loop {
- if white_list.contains(path_buf.to_str().unwrap()) {
+ if white_list.contains(&path_buf) {
return true;
}
if !path_buf.pop() {
@@ -383,7 +383,11 @@ mod tests {
#[test]
fn check_paths() {
- let whitelist = svec!["/a/specific/dir/name", "/a/specific", "/b/c"];
+ let whitelist = vec![
+ PathBuf::from("/a/specific/dir/name"),
+ PathBuf::from("/a/specific"),
+ PathBuf::from("/b/c"),
+ ];
let perms = DenoPermissions::from_flags(&DenoFlags {
read_whitelist: whitelist.clone(),
@@ -530,7 +534,7 @@ mod tests {
#[test]
fn test_permissions_request_read() {
- let whitelist = svec!["/foo/bar"];
+ let whitelist = vec![PathBuf::from("/foo/bar")];
let mut perms0 = DenoPermissions::from_flags(&DenoFlags {
read_whitelist: whitelist.clone(),
..Default::default()
@@ -566,7 +570,7 @@ mod tests {
#[test]
fn test_permissions_request_write() {
- let whitelist = svec!["/foo/bar"];
+ let whitelist = vec![PathBuf::from("/foo/bar")];
let mut perms0 = DenoPermissions::from_flags(&DenoFlags {
write_whitelist: whitelist.clone(),
..Default::default()