summaryrefslogtreecommitdiff
path: root/runtime/permissions.rs
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/permissions.rs')
-rw-r--r--runtime/permissions.rs6
1 files changed, 6 insertions, 0 deletions
diff --git a/runtime/permissions.rs b/runtime/permissions.rs
index 2e8e3809f..44a658225 100644
--- a/runtime/permissions.rs
+++ b/runtime/permissions.rs
@@ -302,6 +302,9 @@ pub struct FfiDescriptor(pub PathBuf);
impl UnaryPermission<ReadDescriptor> {
pub fn query(&self, path: Option<&Path>) -> PermissionState {
+ if self.global_state == PermissionState::Granted {
+ return PermissionState::Granted;
+ }
let path = path.map(|p| resolve_from_cwd(p).unwrap());
if self.global_state == PermissionState::Denied
&& match path.as_ref() {
@@ -454,6 +457,9 @@ impl Default for UnaryPermission<ReadDescriptor> {
impl UnaryPermission<WriteDescriptor> {
pub fn query(&self, path: Option<&Path>) -> PermissionState {
+ if self.global_state == PermissionState::Granted {
+ return PermissionState::Granted;
+ }
let path = path.map(|p| resolve_from_cwd(p).unwrap());
if self.global_state == PermissionState::Denied
&& match path.as_ref() {