From e6ffaa1c669fe16346c1b70bfbceb98bf8048e23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=8F=8B=E6=9D=BE?= Date: Sat, 13 Jul 2024 08:54:51 +0000 Subject: [PATCH 1/2] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E6=9D=83=E9=99=90=E6=A3=80=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 邹友松 --- .../napi/session/include/napi_common_utils.h | 2 ++ .../js/napi/session/src/napi_common_utils.cpp | 23 +++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/frameworks/js/napi/session/include/napi_common_utils.h b/frameworks/js/napi/session/include/napi_common_utils.h index 07aedf4d..b47230f9 100644 --- a/frameworks/js/napi/session/include/napi_common_utils.h +++ b/frameworks/js/napi/session/include/napi_common_utils.h @@ -53,6 +53,8 @@ public: static void NapiThrowParamError(napi_env env, std::vector> ¶mInfos); static void NapiThrowNotSystemAppError(napi_env env); static bool IsCallerValid(); + static bool IsPermissionGranted(const std::string &permission); + static void NapiThrowPermissionError(napi_env env); static napi_value BuildThrowError(napi_env env, const BusinessError &businessError); static int32_t BuildBusinessError(napi_env env, napi_value &obj, const BusinessError &businessError); static int32_t ConvertToErrorCode(CallResult callResult); diff --git a/frameworks/js/napi/session/src/napi_common_utils.cpp b/frameworks/js/napi/session/src/napi_common_utils.cpp index c7a8a444..17ac4d5f 100644 --- a/frameworks/js/napi/session/src/napi_common_utils.cpp +++ b/frameworks/js/napi/session/src/napi_common_utils.cpp @@ -232,6 +232,29 @@ void NapiCommonUtils::NapiThrowNotSystemAppError(napi_env env) PARAM_CHECK(status == napi_ok, return, "Failed to napi_throw %{public}d", CAST_INT(status)); } +void NapiCommonUtils::NapiThrowPermissionError(napi_env env) +{ + BusinessError businessError; + CallResult errCode = CallResult::APP_NOT_GRANTED; + std::string errMsg = "BusinessError " + std::to_string(CAST_INT(errCode)) + .append(": Permission not grandted."); + businessError.Build(errCode, errMsg); + napi_value msg = BuildThrowError(env, businessError); + napi_status status = napi_throw(env, msg); + PARAM_CHECK(status == napi_ok, return, "Failed to napi_throw %{public}d", CAST_INT(status)); +} + +bool NapiCommonUtils::IsPermissionGranted(const std::string &permission) +{ + OHOS::Security::AccessToken::AccessTokenID callerToken = IPCSkeleton::GetCallingTokenID(); + int verifyResult = Security::AccessToken::AccessTokenKit::VerifyAccessToken(callerToken, permission); + bool isPermissionGranted = verifyResult == Security::AccessToken::PERMISSION_GRANTED; + if (!isPermissionGranted) { + ENGINE_LOGE("permission %{public}s not granted", permission.c_str()); + } + return isPermissionGranted; +} + bool NapiCommonUtils::IsCallerValid() { OHOS::Security::AccessToken::AccessTokenID callerToken = IPCSkeleton::GetCallingTokenID(); -- Gitee From a8614983aa540851c99273769cf1b143cb6cc849 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=8F=8B=E6=9D=BE?= Date: Mon, 15 Jul 2024 12:32:20 +0000 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8F=90=E7=A4=BA?= =?UTF-8?q?=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 邹友松 --- frameworks/js/napi/session/src/napi_common_utils.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/js/napi/session/src/napi_common_utils.cpp b/frameworks/js/napi/session/src/napi_common_utils.cpp index 17ac4d5f..e7b84853 100644 --- a/frameworks/js/napi/session/src/napi_common_utils.cpp +++ b/frameworks/js/napi/session/src/napi_common_utils.cpp @@ -237,7 +237,7 @@ void NapiCommonUtils::NapiThrowPermissionError(napi_env env) BusinessError businessError; CallResult errCode = CallResult::APP_NOT_GRANTED; std::string errMsg = "BusinessError " + std::to_string(CAST_INT(errCode)) - .append(": Permission not grandted."); + .append(": Permission not granted."); businessError.Build(errCode, errMsg); napi_value msg = BuildThrowError(env, businessError); napi_status status = napi_throw(env, msg); -- Gitee