Skip to content

Commit 2959e08

Browse files
bartlomiejudsherret
authored andcommitted
fix: make --allow-env stronger that --deny-env (#29079)
1 parent 81da813 commit 2959e08

File tree

4 files changed

+31
-1
lines changed

4 files changed

+31
-1
lines changed

runtime/permissions/lib.rs

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1944,7 +1944,7 @@ impl UnaryPermission<EnvQueryDescriptor> {
19441944

19451945
pub fn check_all(&mut self) -> Result<(), PermissionDeniedError> {
19461946
skip_check_if_is_permission_fully_granted!(self);
1947-
self.check_desc(None, false, None)
1947+
self.check_desc(None, true, None)
19481948
}
19491949
}
19501950

@@ -5263,4 +5263,21 @@ mod tests {
52635263
);
52645264
}
52655265
}
5266+
5267+
#[test]
5268+
fn test_env_check_all() {
5269+
set_prompter(Box::new(TestPrompter));
5270+
let parser = TestPermissionDescriptorParser;
5271+
let mut perms = Permissions::from_options(
5272+
&parser,
5273+
&PermissionsOptions {
5274+
allow_env: Some(vec![]),
5275+
deny_env: Some(svec!["FOO"]),
5276+
..Default::default()
5277+
},
5278+
)
5279+
.unwrap();
5280+
5281+
assert!(perms.env.check_all().is_err());
5282+
}
52665283
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"args": "run --allow-env --deny-env=FOOBAR main.ts",
3+
"output": "main.out",
4+
"exitCode": 1,
5+
"envs": {
6+
"FOOBAR": "FOOBAR"
7+
}
8+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
error: Uncaught (in promise) NotCapable: Requires env access, run again with the --allow-env flag
2+
console.log(Deno.env.toObject());
3+
^
4+
[WILDCARD]main.ts:1:22
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
console.log(Deno.env.toObject());

0 commit comments

Comments
 (0)