Skip to content

Commit 946ccda

Browse files
bartlomiejudsherret
authored andcommitted
fix: make --allow-env stronger that --deny-env (#29079)
1 parent 16b18e2 commit 946ccda

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
@@ -1912,7 +1912,7 @@ impl UnaryPermission<EnvQueryDescriptor> {
19121912

19131913
pub fn check_all(&mut self) -> Result<(), PermissionDeniedError> {
19141914
skip_check_if_is_permission_fully_granted!(self);
1915-
self.check_desc(None, false, None)
1915+
self.check_desc(None, true, None)
19161916
}
19171917
}
19181918

@@ -5215,4 +5215,21 @@ mod tests {
52155215
);
52165216
}
52175217
}
5218+
5219+
#[test]
5220+
fn test_env_check_all() {
5221+
set_prompter(Box::new(TestPrompter));
5222+
let parser = TestPermissionDescriptorParser;
5223+
let mut perms = Permissions::from_options(
5224+
&parser,
5225+
&PermissionsOptions {
5226+
allow_env: Some(vec![]),
5227+
deny_env: Some(svec!["FOO"]),
5228+
..Default::default()
5229+
},
5230+
)
5231+
.unwrap();
5232+
5233+
assert!(perms.env.check_all().is_err());
5234+
}
52185235
}
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)