From de14c0898a0b81dd3cbe5e9a75cfe89d719e370d Mon Sep 17 00:00:00 2001 From: cuiruibin Date: Mon, 28 Apr 2025 16:08:07 +0800 Subject: [PATCH] =?UTF-8?q?JS=E6=8E=A5=E5=8F=A3=E9=94=99=E8=AF=AF=E6=8F=8F?= =?UTF-8?q?=E8=BF=B0=E4=BF=A1=E6=81=AF=E6=9B=B4=E6=96=B0=20Signed-off-by:?= =?UTF-8?q?=20cuiruibin=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kits/js/file_share/grant_permissions.cpp | 57 ++++++++++++------- .../kits/js/file_share/grant_permissions.h | 2 + 2 files changed, 40 insertions(+), 19 deletions(-) diff --git a/interfaces/kits/js/file_share/grant_permissions.cpp b/interfaces/kits/js/file_share/grant_permissions.cpp index 18910ae63..1838702b4 100644 --- a/interfaces/kits/js/file_share/grant_permissions.cpp +++ b/interfaces/kits/js/file_share/grant_permissions.cpp @@ -152,8 +152,10 @@ static napi_status CheckPathArray(napi_env env, napi_value agrv, uint32_t &count return napi_ok; } -static napi_status GetPathPolicy(napi_env env, napi_value agrv, std::vector &pathPolicies, - uint32_t index) +static napi_status GetPathPolicy(napi_env env, + napi_value agrv, + std::vector &pathPolicies, + uint32_t index) { napi_value object; napi_status status = napi_get_element(env, agrv, index, &object); @@ -232,8 +234,11 @@ napi_value PersistPermission(napi_env env, napi_callback_info info) } shared_ptr arg = make_shared(); if (arg == nullptr) { - LOGE("PolicyErrorArgs make_shared is failed"); - NError(E_UNKNOWN_ERROR).ThrowErr(env); + LOGE("Make_shared is failed"); + std::tuple errInfo = + std::make_tuple(E_UNKNOWN_ERROR, "Out of memory, execute make_shared function failed"); + ErrParam errorParam = [errInfo]() { return errInfo; }; + NError(errorParam).ThrowErr(env); return nullptr; } auto cbExec = [uriPolicies, arg]() -> NError { @@ -271,8 +276,11 @@ napi_value RevokePermission(napi_env env, napi_callback_info info) } shared_ptr arg = make_shared(); if (arg == nullptr) { - LOGE("PolicyErrorArgs make_shared is failed"); - NError(E_UNKNOWN_ERROR).ThrowErr(env); + LOGE("Make_shared is failed"); + std::tuple errInfo = + std::make_tuple(E_UNKNOWN_ERROR, "Out of memory, execute make_shared function failed"); + ErrParam errorParam = [errInfo]() { return errInfo; }; + NError(errorParam).ThrowErr(env); return nullptr; } auto cbExec = [uriPolicies, arg]() -> NError { @@ -310,8 +318,11 @@ napi_value ActivatePermission(napi_env env, napi_callback_info info) } shared_ptr arg = make_shared(); if (arg == nullptr) { - LOGE("PolicyErrorArgs make make_shared failed"); - NError(E_UNKNOWN_ERROR).ThrowErr(env); + LOGE("Make_shared is failed"); + std::tuple errInfo = + std::make_tuple(E_UNKNOWN_ERROR, "Out of memory, execute make_shared function failed"); + ErrParam errorParam = [errInfo]() { return errInfo; }; + NError(errorParam).ThrowErr(env); return nullptr; } auto cbExec = [uriPolicies, arg]() -> NError { @@ -349,8 +360,11 @@ napi_value DeactivatePermission(napi_env env, napi_callback_info info) } shared_ptr arg = make_shared(); if (arg == nullptr) { - LOGE("PolicyErrorArgs make_shared is failed"); - NError(E_UNKNOWN_ERROR).ThrowErr(env); + LOGE("Make_shared is failed"); + std::tuple errInfo = + std::make_tuple(E_UNKNOWN_ERROR, "Out of memory, execute make_shared function failed"); + ErrParam errorParam = [errInfo]() { return errInfo; }; + NError(errorParam).ThrowErr(env); return nullptr; } auto cbExec = [uriPolicies, arg]() -> NError { @@ -388,8 +402,11 @@ napi_value CheckPersistentPermission(napi_env env, napi_callback_info info) } shared_ptr arg = make_shared(); if (arg == nullptr) { - LOGE("PolicyInfoResultArgs make_shared is failed"); - NError(E_UNKNOWN_ERROR).ThrowErr(env); + LOGE("Make_shared is failed"); + std::tuple errInfo = + std::make_tuple(E_UNKNOWN_ERROR, "Out of memory, execute make_shared function failed"); + ErrParam errorParam = [errInfo]() { return errInfo; }; + NError(errorParam).ThrowErr(env); return nullptr; } auto cbExec = [uriPolicies, arg]() -> NError { @@ -409,11 +426,10 @@ napi_value CheckPersistentPermission(napi_env env, napi_callback_info info) static bool CheckTokenIdPermission(uint32_t tokenCaller, const string &permission) { - return AccessTokenKit::VerifyAccessToken(tokenCaller, permission) == - PermissionState::PERMISSION_GRANTED; + return AccessTokenKit::VerifyAccessToken(tokenCaller, permission) == PermissionState::PERMISSION_GRANTED; } -static bool CheckArgs(napi_env env, napi_callback_info info, NFuncArg& funcArg) +static bool CheckArgs(napi_env env, napi_callback_info info, NFuncArg &funcArg) { if (!funcArg.InitArgs(NARG_CNT::THREE)) { LOGE("ActivatePermission Number of arguments unmatched"); @@ -421,7 +437,7 @@ static bool CheckArgs(napi_env env, napi_callback_info info, NFuncArg& funcArg) } auto [succTokenId, tokenId] = NVal(env, funcArg[NARG_POS::FIRST]).ToInt32(); - if (!succTokenId || tokenId == 0) { + if (!succTokenId || tokenId == 0) { LOGE("Failed to get tokenid or tokenid is 0"); return false; } @@ -470,11 +486,14 @@ napi_value CheckPathPermission(napi_env env, napi_callback_info info) shared_ptr arg = make_shared(); if (arg == nullptr) { - LOGE("PolicyInfoResultArgs make_shared is failed"); - NError(E_UNKNOWN_ERROR).ThrowErr(env); + LOGE("Make_shared is failed"); + std::tuple errInfo = + std::make_tuple(E_UNKNOWN_ERROR, "Out of memory, execute make_shared function failed"); + ErrParam errorParam = [errInfo]() { return errInfo; }; + NError(errorParam).ThrowErr(env); return nullptr; } - auto cbExec = [tokenId { move(tokenId)}, pathPolicies, policyType { move(policyType)}, arg]() -> NError { + auto cbExec = [tokenId {move(tokenId)}, pathPolicies, policyType {move(policyType)}, arg]() -> NError { arg->errNo = FilePermission::CheckPathPermission(tokenId, pathPolicies, policyType, arg->resultData); return NError(arg->errNo); }; diff --git a/interfaces/kits/js/file_share/grant_permissions.h b/interfaces/kits/js/file_share/grant_permissions.h index c42c040f3..9e3b690c7 100644 --- a/interfaces/kits/js/file_share/grant_permissions.h +++ b/interfaces/kits/js/file_share/grant_permissions.h @@ -17,6 +17,7 @@ #define GRANT_PERMISSIONS_H #include +#include #include "file_permission.h" #include "filemgmt_libn.h" @@ -24,6 +25,7 @@ namespace OHOS { namespace AppFileService { namespace ModuleFileShare { +using ErrParam = std::function()>; napi_value PersistPermission(napi_env env, napi_callback_info info); napi_value RevokePermission(napi_env env, napi_callback_info info); napi_value ActivatePermission(napi_env env, napi_callback_info info); -- Gitee