From 32be303b2f64657b227e27809df19add091d9126 Mon Sep 17 00:00:00 2001 From: l00520400 Date: Sat, 26 Feb 2022 19:05:11 +0800 Subject: [PATCH 1/2] verify return type Signed-off-by: l00520400 Change-Id: Ib1cfab6fbd63cf81c113364fe5a460d6856733f5 Signed-off-by: l00520400 --- README_zh.md | 2 +- .../accesstoken/include/accesstoken_kit.h | 6 ++-- .../accesstoken/src/accesstoken_kit.cpp | 8 ++--- .../src/accesstoken_manager_client.cpp | 8 ++--- .../src/accesstoken_manager_client.h | 4 +-- .../accesstoken/napi/include/napi_atmanager.h | 3 ++ .../accesstoken/napi/src/napi_atmanager.cpp | 29 +++++++++++++++---- 7 files changed, 40 insertions(+), 20 deletions(-) diff --git a/README_zh.md b/README_zh.md index 23be5b3af..f26ac2540 100644 --- a/README_zh.md +++ b/README_zh.md @@ -49,7 +49,7 @@ ATM模块主要提供如下功能: | AccessTokenID GetHapTokenID(int userID, const std::string& bundleName, int instIndex); | 查询指定应用的tokenId | | int GetHapTokenInfo(AccessTokenID tokenID, HapTokenInfo& hapTokenInfoRes); | 查询指定tokenID对应的hap包的tokenInfo信息 | | int GetNativeTokenInfo(AccessTokenID tokenID, NativeTokenInfo& nativeTokenInfoRes); | 查询指定tokenID对应的native的tokenInfo信息 | -| int VerifyAccessToken(AccessTokenID tokenID, const std::string& permissionName); | 检查指定tokenID是否具有指定权限 | +| PermissionState VerifyAccessToken(AccessTokenID tokenID, const std::string& permissionName); | 检查指定tokenID是否具有指定权限 | | int GetDefPermission(const std::string& permissionName, PermissionDef& permissionDefResult); | 查询指定权限的权限定义信息 | | int GetDefPermissions(AccessTokenID tokenID, std::vector& permList); | 查询指定tokenID对应的hap包的权限定义集合 | | int GetReqPermissions(AccessTokenID tokenID, std::vector& reqPermList, bool isSystemGrant); | 查询指定tokenID对应的hap包申请的权限状态集合 | diff --git a/interfaces/innerkits/accesstoken/include/accesstoken_kit.h b/interfaces/innerkits/accesstoken/include/accesstoken_kit.h index 9f6243cd2..8c3357932 100644 --- a/interfaces/innerkits/accesstoken/include/accesstoken_kit.h +++ b/interfaces/innerkits/accesstoken/include/accesstoken_kit.h @@ -42,9 +42,9 @@ public: static AccessTokenID GetHapTokenID(int userID, const std::string& bundleName, int instIndex); static int GetHapTokenInfo(AccessTokenID tokenID, HapTokenInfo& hapTokenInfoRes); static int GetNativeTokenInfo(AccessTokenID tokenID, NativeTokenInfo& nativeTokenInfoRes); - static int VerifyAccessToken(AccessTokenID tokenID, const std::string& permissionName); - static int VerifyNativeToken(AccessTokenID tokenID, const std::string& permissionName); - static int VerifyAccessToken( + static PermissionState VerifyAccessToken(AccessTokenID tokenID, const std::string& permissionName); + static PermissionState VerifyNativeToken(AccessTokenID tokenID, const std::string& permissionName); + static PermissionState VerifyAccessToken( AccessTokenID callerTokenID, AccessTokenID firstTokenID, const std::string& permissionName); static int GetDefPermission(const std::string& permissionName, PermissionDef& permissionDefResult); static int GetDefPermissions(AccessTokenID tokenID, std::vector& permList); diff --git a/interfaces/innerkits/accesstoken/src/accesstoken_kit.cpp b/interfaces/innerkits/accesstoken/src/accesstoken_kit.cpp index 9a6607159..a6e6d7ee6 100644 --- a/interfaces/innerkits/accesstoken/src/accesstoken_kit.cpp +++ b/interfaces/innerkits/accesstoken/src/accesstoken_kit.cpp @@ -139,7 +139,7 @@ int AccessTokenKit::GetNativeTokenInfo(AccessTokenID tokenID, NativeTokenInfo& n return AccessTokenManagerClient::GetInstance().GetNativeTokenInfo(tokenID, nativeTokenInfoRes); } -int AccessTokenKit::VerifyAccessToken(AccessTokenID tokenID, const std::string& permissionName) +PermissionState AccessTokenKit::VerifyAccessToken(AccessTokenID tokenID, const std::string& permissionName) { ACCESSTOKEN_LOG_INFO(LABEL, "%{public}s called", __func__); if (tokenID == 0) { @@ -154,10 +154,10 @@ int AccessTokenKit::VerifyAccessToken(AccessTokenID tokenID, const std::string& return AccessTokenManagerClient::GetInstance().VerifyAccessToken(tokenID, permissionName); } -int AccessTokenKit::VerifyAccessToken( +PermissionState AccessTokenKit::VerifyAccessToken( AccessTokenID callerTokenID, AccessTokenID firstTokenID, const std::string& permissionName) { - int ret = AccessTokenKit::VerifyAccessToken(callerTokenID, permissionName); + PermissionState ret = AccessTokenKit::VerifyAccessToken(callerTokenID, permissionName); if (ret != PERMISSION_GRANTED) { return ret; } @@ -167,7 +167,7 @@ int AccessTokenKit::VerifyAccessToken( return AccessTokenKit::VerifyAccessToken(firstTokenID, permissionName); } -int AccessTokenKit::VerifyNativeToken(AccessTokenID tokenID, const std::string& permissionName) +PermissionState AccessTokenKit::VerifyNativeToken(AccessTokenID tokenID, const std::string& permissionName) { ACCESSTOKEN_LOG_INFO(LABEL, "%{public}s called", __func__); if (tokenID == 0) { diff --git a/interfaces/innerkits/accesstoken/src/accesstoken_manager_client.cpp b/interfaces/innerkits/accesstoken/src/accesstoken_manager_client.cpp index 51e2d60b5..90d2402c4 100644 --- a/interfaces/innerkits/accesstoken/src/accesstoken_manager_client.cpp +++ b/interfaces/innerkits/accesstoken/src/accesstoken_manager_client.cpp @@ -43,7 +43,7 @@ AccessTokenManagerClient::AccessTokenManagerClient() AccessTokenManagerClient::~AccessTokenManagerClient() {} -int AccessTokenManagerClient::VerifyAccessToken(AccessTokenID tokenID, const std::string& permissionName) +PermissionState AccessTokenManagerClient::VerifyAccessToken(AccessTokenID tokenID, const std::string& permissionName) { ACCESSTOKEN_LOG_DEBUG(LABEL, "%{public}s: called!", __func__); auto proxy = GetProxy(); @@ -51,10 +51,10 @@ int AccessTokenManagerClient::VerifyAccessToken(AccessTokenID tokenID, const std ACCESSTOKEN_LOG_ERROR(LABEL, "proxy is null"); return PERMISSION_DENIED; } - return proxy->VerifyAccessToken(tokenID, permissionName); + return static_cast(proxy->VerifyAccessToken(tokenID, permissionName)); } -int AccessTokenManagerClient::VerifyNativeToken(AccessTokenID tokenID, const std::string& permissionName) +PermissionState AccessTokenManagerClient::VerifyNativeToken(AccessTokenID tokenID, const std::string& permissionName) { ACCESSTOKEN_LOG_DEBUG(LABEL, "%{public}s: called!", __func__); auto proxy = GetProxy(); @@ -62,7 +62,7 @@ int AccessTokenManagerClient::VerifyNativeToken(AccessTokenID tokenID, const std ACCESSTOKEN_LOG_ERROR(LABEL, "proxy is null"); return PERMISSION_DENIED; } - return proxy->VerifyNativeToken(tokenID, permissionName); + return static_cast(proxy->VerifyNativeToken(tokenID, permissionName)); } int AccessTokenManagerClient::GetDefPermission( diff --git a/interfaces/innerkits/accesstoken/src/accesstoken_manager_client.h b/interfaces/innerkits/accesstoken/src/accesstoken_manager_client.h index 74df766ed..68ccc4d2d 100644 --- a/interfaces/innerkits/accesstoken/src/accesstoken_manager_client.h +++ b/interfaces/innerkits/accesstoken/src/accesstoken_manager_client.h @@ -40,8 +40,8 @@ public: virtual ~AccessTokenManagerClient(); - int VerifyAccessToken(AccessTokenID tokenID, const std::string& permissionName); - int VerifyNativeToken(AccessTokenID tokenID, const std::string& permissionName); + PermissionState VerifyAccessToken(AccessTokenID tokenID, const std::string& permissionName); + PermissionState VerifyNativeToken(AccessTokenID tokenID, const std::string& permissionName); int GetDefPermission(const std::string& permissionName, PermissionDef& permissionDefResult); int GetDefPermissions(AccessTokenID tokenID, std::vector& permList); int GetReqPermissions( diff --git a/interfaces/kits/accesstoken/napi/include/napi_atmanager.h b/interfaces/kits/accesstoken/napi/include/napi_atmanager.h index 850a702fc..514555ca5 100644 --- a/interfaces/kits/accesstoken/napi/include/napi_atmanager.h +++ b/interfaces/kits/accesstoken/napi/include/napi_atmanager.h @@ -20,6 +20,7 @@ #include #include +#include "accesstoken_kit.h" #include "napi/native_api.h" #include "napi/native_node_api.h" @@ -43,6 +44,7 @@ struct AtManagerAsyncContext { char permissionName[ VALUE_BUFFER_SIZE ] = { 0 }; size_t pNameLen = 0; int flag = 0; + PermissionState grantState = PERMISSION_DENIED; int result = 0; // callback or promise return result int status = ASYN_THREAD_EXEC_FAIL; // napi_create_async_work-execute function exec result, default failure @@ -75,6 +77,7 @@ private: static void RevokeUserGrantedPermissionComplete(napi_env env, napi_status status, void *data); static void GetPermissionFlagsExcute(napi_env env, void *data); static void GetPermissionFlagsComplete(napi_env env, napi_status status, void *data); + static void SetNamedProperty(napi_env env, napi_value dstObj, const int32_t objValue, const char *propName); }; } // namespace AccessToken } // namespace Security diff --git a/interfaces/kits/accesstoken/napi/src/napi_atmanager.cpp b/interfaces/kits/accesstoken/napi/src/napi_atmanager.cpp index 608b3df63..4dba18438 100644 --- a/interfaces/kits/accesstoken/napi/src/napi_atmanager.cpp +++ b/interfaces/kits/accesstoken/napi/src/napi_atmanager.cpp @@ -19,7 +19,6 @@ #include #include -#include "accesstoken_kit.h" #include "accesstoken_log.h" #include "napi/native_api.h" #include "napi/native_node_api.h" @@ -33,6 +32,13 @@ static constexpr OHOS::HiviewDFX::HiLogLabel LABEL = { }; } // namespace +void NapiAtManager::SetNamedProperty(napi_env env, napi_value dstObj, const int32_t objValue, const char *propName) +{ + napi_value prop = nullptr; + napi_create_int32(env, objValue, &prop); + napi_set_named_property(env, dstObj, propName, prop); +} + napi_value NapiAtManager::Init(napi_env env, napi_value exports) { ACCESSTOKEN_LOG_DEBUG(LABEL, "enter init."); @@ -56,6 +62,17 @@ napi_value NapiAtManager::Init(napi_env env, napi_value exports) NAPI_CALL(env, napi_create_reference(env, cons, 1, &atManagerRef_)); NAPI_CALL(env, napi_set_named_property(env, exports, ATMANAGER_CLASS_NAME.c_str(), cons)); + napi_value GrantStatus = nullptr; + napi_create_object(env, &GrantStatus); + + SetNamedProperty(env, GrantStatus, PERMISSION_DENIED, "PERMISSION_DENIED"); + SetNamedProperty(env, GrantStatus, PERMISSION_GRANTED, "PERMISSION_GRANTED"); + + napi_property_descriptor exportFuncs[] = { + DECLARE_NAPI_PROPERTY("GrantStatus", GrantStatus), + }; + napi_define_properties(env, exports, sizeof(exportFuncs) / sizeof(*exportFuncs), exportFuncs); + return exports; } @@ -118,7 +135,7 @@ void NapiAtManager::ParseInputVerifyPermissionOrGetFlag(const napi_env env, cons VALUE_BUFFER_SIZE, &(asyncContext.pNameLen)); // get permissionName } else { ACCESSTOKEN_LOG_ERROR(LABEL, "Type matching failed"); - asyncContext.result = -1; + asyncContext.status = ASYN_THREAD_EXEC_FAIL; } } @@ -131,11 +148,11 @@ void NapiAtManager::VerifyAccessTokenExecute(napi_env env, void *data) AtManagerAsyncContext* asyncContext = (AtManagerAsyncContext *)data; // use innerkit class method to verify permission - asyncContext->result = AccessTokenKit::VerifyAccessToken(asyncContext->tokenId, + asyncContext->grantState = AccessTokenKit::VerifyAccessToken(asyncContext->tokenId, asyncContext->permissionName); // set status according to the innerkit class method return - if ((asyncContext->result == PERMISSION_GRANTED) || (asyncContext->result == PERMISSION_DENIED)) { + if ((asyncContext->grantState == PERMISSION_GRANTED) || (asyncContext->grantState == PERMISSION_DENIED)) { asyncContext->status = ASYN_THREAD_EXEC_SUCC; // granted and denied regard as function exec success } else { asyncContext->status = ASYN_THREAD_EXEC_FAIL; // other regard as function exec failure @@ -152,7 +169,7 @@ void NapiAtManager::VerifyAccessTokenComplete(napi_env env, napi_status status, if (asyncContext->status == ASYN_THREAD_EXEC_SUCC) { // execute succ, use resolve to return result by the deferred create before - napi_create_int32(env, asyncContext->result, &result); // verify result + napi_create_int32(env, asyncContext->grantState, &result); // verify result napi_resolve_deferred(env, asyncContext->deferred, result); } else { // execute fail, use reject to return default PERMISSION_DENIED by the deferred create before @@ -176,7 +193,7 @@ napi_value NapiAtManager::VerifyAccessToken(napi_env env, napi_callback_info inf } ParseInputVerifyPermissionOrGetFlag(env, info, *asyncContext); - if (asyncContext->result == -1) { + if (asyncContext->status == ASYN_THREAD_EXEC_FAIL) { delete asyncContext; return nullptr; } -- Gitee From dff8076176963d8412d52ee05c74813e36025d56 Mon Sep 17 00:00:00 2001 From: l00520400 Date: Mon, 28 Feb 2022 19:30:08 +0800 Subject: [PATCH 2/2] sec Signed-off-by: l00520400 Change-Id: I99431d7ab7f29b71a3b8d74ab0244736846190e9 Signed-off-by: l00520400 --- README_zh.md | 2 +- .../innerkits/accesstoken/include/accesstoken_kit.h | 6 +++--- .../innerkits/accesstoken/src/accesstoken_kit.cpp | 8 ++++---- .../accesstoken/src/accesstoken_manager_client.cpp | 8 ++++---- .../accesstoken/src/accesstoken_manager_client.h | 4 ++-- .../kits/accesstoken/napi/include/napi_atmanager.h | 2 -- .../kits/accesstoken/napi/src/napi_atmanager.cpp | 11 ++++++----- 7 files changed, 20 insertions(+), 21 deletions(-) diff --git a/README_zh.md b/README_zh.md index f26ac2540..23be5b3af 100644 --- a/README_zh.md +++ b/README_zh.md @@ -49,7 +49,7 @@ ATM模块主要提供如下功能: | AccessTokenID GetHapTokenID(int userID, const std::string& bundleName, int instIndex); | 查询指定应用的tokenId | | int GetHapTokenInfo(AccessTokenID tokenID, HapTokenInfo& hapTokenInfoRes); | 查询指定tokenID对应的hap包的tokenInfo信息 | | int GetNativeTokenInfo(AccessTokenID tokenID, NativeTokenInfo& nativeTokenInfoRes); | 查询指定tokenID对应的native的tokenInfo信息 | -| PermissionState VerifyAccessToken(AccessTokenID tokenID, const std::string& permissionName); | 检查指定tokenID是否具有指定权限 | +| int VerifyAccessToken(AccessTokenID tokenID, const std::string& permissionName); | 检查指定tokenID是否具有指定权限 | | int GetDefPermission(const std::string& permissionName, PermissionDef& permissionDefResult); | 查询指定权限的权限定义信息 | | int GetDefPermissions(AccessTokenID tokenID, std::vector& permList); | 查询指定tokenID对应的hap包的权限定义集合 | | int GetReqPermissions(AccessTokenID tokenID, std::vector& reqPermList, bool isSystemGrant); | 查询指定tokenID对应的hap包申请的权限状态集合 | diff --git a/interfaces/innerkits/accesstoken/include/accesstoken_kit.h b/interfaces/innerkits/accesstoken/include/accesstoken_kit.h index 8c3357932..9f6243cd2 100644 --- a/interfaces/innerkits/accesstoken/include/accesstoken_kit.h +++ b/interfaces/innerkits/accesstoken/include/accesstoken_kit.h @@ -42,9 +42,9 @@ public: static AccessTokenID GetHapTokenID(int userID, const std::string& bundleName, int instIndex); static int GetHapTokenInfo(AccessTokenID tokenID, HapTokenInfo& hapTokenInfoRes); static int GetNativeTokenInfo(AccessTokenID tokenID, NativeTokenInfo& nativeTokenInfoRes); - static PermissionState VerifyAccessToken(AccessTokenID tokenID, const std::string& permissionName); - static PermissionState VerifyNativeToken(AccessTokenID tokenID, const std::string& permissionName); - static PermissionState VerifyAccessToken( + static int VerifyAccessToken(AccessTokenID tokenID, const std::string& permissionName); + static int VerifyNativeToken(AccessTokenID tokenID, const std::string& permissionName); + static int VerifyAccessToken( AccessTokenID callerTokenID, AccessTokenID firstTokenID, const std::string& permissionName); static int GetDefPermission(const std::string& permissionName, PermissionDef& permissionDefResult); static int GetDefPermissions(AccessTokenID tokenID, std::vector& permList); diff --git a/interfaces/innerkits/accesstoken/src/accesstoken_kit.cpp b/interfaces/innerkits/accesstoken/src/accesstoken_kit.cpp index a6e6d7ee6..9a6607159 100644 --- a/interfaces/innerkits/accesstoken/src/accesstoken_kit.cpp +++ b/interfaces/innerkits/accesstoken/src/accesstoken_kit.cpp @@ -139,7 +139,7 @@ int AccessTokenKit::GetNativeTokenInfo(AccessTokenID tokenID, NativeTokenInfo& n return AccessTokenManagerClient::GetInstance().GetNativeTokenInfo(tokenID, nativeTokenInfoRes); } -PermissionState AccessTokenKit::VerifyAccessToken(AccessTokenID tokenID, const std::string& permissionName) +int AccessTokenKit::VerifyAccessToken(AccessTokenID tokenID, const std::string& permissionName) { ACCESSTOKEN_LOG_INFO(LABEL, "%{public}s called", __func__); if (tokenID == 0) { @@ -154,10 +154,10 @@ PermissionState AccessTokenKit::VerifyAccessToken(AccessTokenID tokenID, const s return AccessTokenManagerClient::GetInstance().VerifyAccessToken(tokenID, permissionName); } -PermissionState AccessTokenKit::VerifyAccessToken( +int AccessTokenKit::VerifyAccessToken( AccessTokenID callerTokenID, AccessTokenID firstTokenID, const std::string& permissionName) { - PermissionState ret = AccessTokenKit::VerifyAccessToken(callerTokenID, permissionName); + int ret = AccessTokenKit::VerifyAccessToken(callerTokenID, permissionName); if (ret != PERMISSION_GRANTED) { return ret; } @@ -167,7 +167,7 @@ PermissionState AccessTokenKit::VerifyAccessToken( return AccessTokenKit::VerifyAccessToken(firstTokenID, permissionName); } -PermissionState AccessTokenKit::VerifyNativeToken(AccessTokenID tokenID, const std::string& permissionName) +int AccessTokenKit::VerifyNativeToken(AccessTokenID tokenID, const std::string& permissionName) { ACCESSTOKEN_LOG_INFO(LABEL, "%{public}s called", __func__); if (tokenID == 0) { diff --git a/interfaces/innerkits/accesstoken/src/accesstoken_manager_client.cpp b/interfaces/innerkits/accesstoken/src/accesstoken_manager_client.cpp index 90d2402c4..51e2d60b5 100644 --- a/interfaces/innerkits/accesstoken/src/accesstoken_manager_client.cpp +++ b/interfaces/innerkits/accesstoken/src/accesstoken_manager_client.cpp @@ -43,7 +43,7 @@ AccessTokenManagerClient::AccessTokenManagerClient() AccessTokenManagerClient::~AccessTokenManagerClient() {} -PermissionState AccessTokenManagerClient::VerifyAccessToken(AccessTokenID tokenID, const std::string& permissionName) +int AccessTokenManagerClient::VerifyAccessToken(AccessTokenID tokenID, const std::string& permissionName) { ACCESSTOKEN_LOG_DEBUG(LABEL, "%{public}s: called!", __func__); auto proxy = GetProxy(); @@ -51,10 +51,10 @@ PermissionState AccessTokenManagerClient::VerifyAccessToken(AccessTokenID tokenI ACCESSTOKEN_LOG_ERROR(LABEL, "proxy is null"); return PERMISSION_DENIED; } - return static_cast(proxy->VerifyAccessToken(tokenID, permissionName)); + return proxy->VerifyAccessToken(tokenID, permissionName); } -PermissionState AccessTokenManagerClient::VerifyNativeToken(AccessTokenID tokenID, const std::string& permissionName) +int AccessTokenManagerClient::VerifyNativeToken(AccessTokenID tokenID, const std::string& permissionName) { ACCESSTOKEN_LOG_DEBUG(LABEL, "%{public}s: called!", __func__); auto proxy = GetProxy(); @@ -62,7 +62,7 @@ PermissionState AccessTokenManagerClient::VerifyNativeToken(AccessTokenID tokenI ACCESSTOKEN_LOG_ERROR(LABEL, "proxy is null"); return PERMISSION_DENIED; } - return static_cast(proxy->VerifyNativeToken(tokenID, permissionName)); + return proxy->VerifyNativeToken(tokenID, permissionName); } int AccessTokenManagerClient::GetDefPermission( diff --git a/interfaces/innerkits/accesstoken/src/accesstoken_manager_client.h b/interfaces/innerkits/accesstoken/src/accesstoken_manager_client.h index 68ccc4d2d..74df766ed 100644 --- a/interfaces/innerkits/accesstoken/src/accesstoken_manager_client.h +++ b/interfaces/innerkits/accesstoken/src/accesstoken_manager_client.h @@ -40,8 +40,8 @@ public: virtual ~AccessTokenManagerClient(); - PermissionState VerifyAccessToken(AccessTokenID tokenID, const std::string& permissionName); - PermissionState VerifyNativeToken(AccessTokenID tokenID, const std::string& permissionName); + int VerifyAccessToken(AccessTokenID tokenID, const std::string& permissionName); + int VerifyNativeToken(AccessTokenID tokenID, const std::string& permissionName); int GetDefPermission(const std::string& permissionName, PermissionDef& permissionDefResult); int GetDefPermissions(AccessTokenID tokenID, std::vector& permList); int GetReqPermissions( diff --git a/interfaces/kits/accesstoken/napi/include/napi_atmanager.h b/interfaces/kits/accesstoken/napi/include/napi_atmanager.h index 514555ca5..a9a0de9a7 100644 --- a/interfaces/kits/accesstoken/napi/include/napi_atmanager.h +++ b/interfaces/kits/accesstoken/napi/include/napi_atmanager.h @@ -20,7 +20,6 @@ #include #include -#include "accesstoken_kit.h" #include "napi/native_api.h" #include "napi/native_node_api.h" @@ -44,7 +43,6 @@ struct AtManagerAsyncContext { char permissionName[ VALUE_BUFFER_SIZE ] = { 0 }; size_t pNameLen = 0; int flag = 0; - PermissionState grantState = PERMISSION_DENIED; int result = 0; // callback or promise return result int status = ASYN_THREAD_EXEC_FAIL; // napi_create_async_work-execute function exec result, default failure diff --git a/interfaces/kits/accesstoken/napi/src/napi_atmanager.cpp b/interfaces/kits/accesstoken/napi/src/napi_atmanager.cpp index 4dba18438..672003a66 100644 --- a/interfaces/kits/accesstoken/napi/src/napi_atmanager.cpp +++ b/interfaces/kits/accesstoken/napi/src/napi_atmanager.cpp @@ -19,6 +19,7 @@ #include #include +#include "accesstoken_kit.h" #include "accesstoken_log.h" #include "napi/native_api.h" #include "napi/native_node_api.h" @@ -135,7 +136,7 @@ void NapiAtManager::ParseInputVerifyPermissionOrGetFlag(const napi_env env, cons VALUE_BUFFER_SIZE, &(asyncContext.pNameLen)); // get permissionName } else { ACCESSTOKEN_LOG_ERROR(LABEL, "Type matching failed"); - asyncContext.status = ASYN_THREAD_EXEC_FAIL; + asyncContext.result = -1; } } @@ -148,11 +149,11 @@ void NapiAtManager::VerifyAccessTokenExecute(napi_env env, void *data) AtManagerAsyncContext* asyncContext = (AtManagerAsyncContext *)data; // use innerkit class method to verify permission - asyncContext->grantState = AccessTokenKit::VerifyAccessToken(asyncContext->tokenId, + asyncContext->result = AccessTokenKit::VerifyAccessToken(asyncContext->tokenId, asyncContext->permissionName); // set status according to the innerkit class method return - if ((asyncContext->grantState == PERMISSION_GRANTED) || (asyncContext->grantState == PERMISSION_DENIED)) { + if ((asyncContext->result == PERMISSION_GRANTED) || (asyncContext->result == PERMISSION_DENIED)) { asyncContext->status = ASYN_THREAD_EXEC_SUCC; // granted and denied regard as function exec success } else { asyncContext->status = ASYN_THREAD_EXEC_FAIL; // other regard as function exec failure @@ -169,7 +170,7 @@ void NapiAtManager::VerifyAccessTokenComplete(napi_env env, napi_status status, if (asyncContext->status == ASYN_THREAD_EXEC_SUCC) { // execute succ, use resolve to return result by the deferred create before - napi_create_int32(env, asyncContext->grantState, &result); // verify result + napi_create_int32(env, asyncContext->result, &result); // verify result napi_resolve_deferred(env, asyncContext->deferred, result); } else { // execute fail, use reject to return default PERMISSION_DENIED by the deferred create before @@ -193,7 +194,7 @@ napi_value NapiAtManager::VerifyAccessToken(napi_env env, napi_callback_info inf } ParseInputVerifyPermissionOrGetFlag(env, info, *asyncContext); - if (asyncContext->status == ASYN_THREAD_EXEC_FAIL) { + if (asyncContext->result == -1) { delete asyncContext; return nullptr; } -- Gitee