From e61aba97094a97246f07335bc1513639bbe4fc4e Mon Sep 17 00:00:00 2001 From: openharmony_ci <120357966@qq.com> Date: Tue, 8 Aug 2023 07:08:17 +0000 Subject: [PATCH] =?UTF-8?q?=E5=9B=9E=E9=80=80=20'Pull=20Request=20!238=20:?= =?UTF-8?q?=20FileUri=E8=8E=B7=E5=8F=96=E8=B7=AF=E5=BE=84=E9=80=82?= =?UTF-8?q?=E9=85=8D=E5=85=AC=E5=85=B1=E7=9B=AE=E5=BD=95URI=E8=B0=83?= =?UTF-8?q?=E6=95=B4=E9=80=82=E9=85=8Dxts=E7=94=A8=E4=BE=8B'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../js/file_share/grant_uri_permission.cpp | 47 +++++-------------- .../kits/js/file_share/grant_uri_permission.h | 1 - 2 files changed, 12 insertions(+), 36 deletions(-) diff --git a/interfaces/kits/js/file_share/grant_uri_permission.cpp b/interfaces/kits/js/file_share/grant_uri_permission.cpp index 6f4d50ad6..e1c3de4c7 100644 --- a/interfaces/kits/js/file_share/grant_uri_permission.cpp +++ b/interfaces/kits/js/file_share/grant_uri_permission.cpp @@ -155,7 +155,7 @@ namespace ModuleFileShare { int32_t fileId = stoi(idStr); int32_t filesType = GetMediaTypeAndApiFromUri(uri.GetPath(), isApi10); valuesBucket.Put(PERMISSION_FILE_ID, fileId); - valuesBucket.Put(PERMISSION_BUNDLE_NAME, uriPermInfo.bundleName); + valuesBucket.Put(PERMISSION_BUNDLE_NAME, uri.GetAuthority()); valuesBucket.Put(PERMISSION_MODE, uriPermInfo.mode); valuesBucket.Put(PERMISSION_TABLE_TYPE, filesType); return 0; @@ -181,36 +181,21 @@ namespace ModuleFileShare { { Uri uri(uriPermInfo.uri); string authority = uri.GetAuthority(); + string scheme = uri.GetScheme(); string path = uri.GetPath(); - if (authority == MEDIA_AUTHORITY && path.find(".") == string::npos) { - return GrantInMediaLibrary(uriPermInfo, uri); - } else { - auto& uriPermissionClient = AAFwk::UriPermissionManagerClient::GetInstance(); - int ret = uriPermissionClient.GrantUriPermission(uri, uriPermInfo.flag, + + if (scheme == FILE_SCHEME) { + if (authority == MEDIA_AUTHORITY && path.find(".") == string::npos) { + return GrantInMediaLibrary(uriPermInfo, uri); + } else { + auto& uriPermissionClient = AAFwk::UriPermissionManagerClient::GetInstance(); + return uriPermissionClient.GrantUriPermission(uri, uriPermInfo.flag, uriPermInfo.bundleName, 1); - if (ret != 0) { - LOGE("uriPermissionClient.GrantUriPermission failed!"); - return -EINVAL; } + } else { + LOGE("FileShare::GetJSArgs get uri parameter failed!"); + return -EINVAL; } - - return 0; - } - - static bool CheckValidPublicUri(const string &inputUri) - { - Uri uri(inputUri); - string scheme = uri.GetScheme(); - if (scheme != FILE_SCHEME) { - return false; - } - - string authority = uri.GetAuthority(); - if (authority != MEDIA_AUTHORITY && authority != FILE_MANAGER_AUTHORITY) { - return false; - } - - return true; } static bool GetJSArgs(napi_env env, const NFuncArg &funcArg, UriPermissionInfo &uriPermInfo) @@ -221,15 +206,7 @@ namespace ModuleFileShare { NError(EINVAL).ThrowErr(env); return false; } - uriPermInfo.uri = string(uri.get()); - if (!CheckValidPublicUri(uriPermInfo.uri)) { - LOGE("FileShare::GetJSArgs uri = %{private}s parameter format error!", uriPermInfo.uri.c_str()); - NError(EINVAL).ThrowErr(env); - return false; - } - - LOGD("FileShare::GetJSArgs uri = %{private}s", uriPermInfo.uri.c_str()); auto [succBundleName, bundleName, lenBundleName] = NVal(env, funcArg[NARG_POS::SECOND]).ToUTF8String(); if (!succBundleName) { diff --git a/interfaces/kits/js/file_share/grant_uri_permission.h b/interfaces/kits/js/file_share/grant_uri_permission.h index 30711a796..e722e292a 100644 --- a/interfaces/kits/js/file_share/grant_uri_permission.h +++ b/interfaces/kits/js/file_share/grant_uri_permission.h @@ -37,7 +37,6 @@ const string PERMISSION_MODE = "mode"; const string MEDIA_AUTHORITY = "media"; const string FILE_SCHEME = "file"; const string PERMISSION_TABLE_TYPE = "table_type"; -const string FILE_MANAGER_AUTHORITY = "docs"; const string MEDIA_FILE_URI_PHOTO_PREFEX = "file://media/Photo/"; const string MEDIA_FILE_URI_AUDIO_PREFEX = "file://media/Audio/"; const string MEDIA_FILE_URI_VIDEO_PREFEX = "file://media/video/"; -- Gitee