diff options
author | David Sherret <dsherret@users.noreply.github.com> | 2024-09-16 21:39:37 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-16 21:39:37 +0100 |
commit | 62e952559f600e72d7498c9b12f906cb0b1ba150 (patch) | |
tree | 6dbcce6592973358ef4bf6341888b0bbbdb98cc5 /runtime/ops/worker_host.rs | |
parent | e0b9c745c15720914f14996bf357d5b375e2dbd8 (diff) |
refactor(permissions): split up Descriptor into Allow, Deny, and Query (#25508)
This makes the permission system more versatile.
Diffstat (limited to 'runtime/ops/worker_host.rs')
-rw-r--r-- | runtime/ops/worker_host.rs | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/runtime/ops/worker_host.rs b/runtime/ops/worker_host.rs index 19475fedf..3c0035645 100644 --- a/runtime/ops/worker_host.rs +++ b/runtime/ops/worker_host.rs @@ -19,6 +19,7 @@ use deno_core::ModuleSpecifier; use deno_core::OpState; use deno_permissions::create_child_permissions; use deno_permissions::ChildPermissionsArg; +use deno_permissions::PermissionDescriptorParser; use deno_permissions::PermissionsContainer; use deno_web::deserialize_js_transferables; use deno_web::JsMessageData; @@ -153,13 +154,19 @@ fn op_create_worker( "Worker.deno.permissions", ); } + let permission_desc_parser = state + .borrow::<Arc<dyn PermissionDescriptorParser>>() + .clone(); let parent_permissions = state.borrow_mut::<PermissionsContainer>(); let worker_permissions = if let Some(child_permissions_arg) = args.permissions { - let mut parent_permissions = parent_permissions.0.lock(); - let perms = - create_child_permissions(&mut parent_permissions, child_permissions_arg)?; - PermissionsContainer::new(perms) + let mut parent_permissions = parent_permissions.inner.lock(); + let perms = create_child_permissions( + permission_desc_parser.as_ref(), + &mut parent_permissions, + child_permissions_arg, + )?; + PermissionsContainer::new(permission_desc_parser, perms) } else { parent_permissions.clone() }; |