From 6c454b8325a857f86b7b64c079255a0d31f5fe6e Mon Sep 17 00:00:00 2001 From: dingqiaoqiao Date: Thu, 27 Feb 2025 19:30:11 +0800 Subject: [PATCH] Modify permission to code of GetPermissionUsedType Signed-off-by: dingqiaoqiao Change-Id: Ie1ff01c276a4b94ff9abfcb126097cb47daba09c --- .../main/cpp/include/permission/permission_data_brief.h | 2 +- .../main/cpp/include/permission/permission_manager.h | 2 +- .../main/cpp/include/token/hap_token_info_inner.h | 2 +- .../main/cpp/src/permission/permission_data_brief.cpp | 2 +- .../main/cpp/src/permission/permission_manager.cpp | 7 +++---- .../main/cpp/src/service/accesstoken_manager_service.cpp | 9 +++++++-- .../main/cpp/src/token/hap_token_info_inner.cpp | 9 ++------- 7 files changed, 16 insertions(+), 17 deletions(-) diff --git a/services/accesstokenmanager/main/cpp/include/permission/permission_data_brief.h b/services/accesstokenmanager/main/cpp/include/permission/permission_data_brief.h index cb3e4dd51..b359f73ad 100644 --- a/services/accesstokenmanager/main/cpp/include/permission/permission_data_brief.h +++ b/services/accesstokenmanager/main/cpp/include/permission/permission_data_brief.h @@ -55,7 +55,7 @@ public: int32_t SetBriefPermData(AccessTokenID tokenID, int32_t opCode, bool status, uint32_t flag); int32_t GetBriefPermDataByTokenId(AccessTokenID tokenID, std::vector& data); void ToString(std::string& info); - PermUsedTypeEnum GetPermissionUsedType(AccessTokenID tokenID, int32_t opCode); + PermUsedTypeEnum GetPermissionUsedType(AccessTokenID tokenID, uint32_t opCode); bool IsPermissionGrantedWithSecComp(AccessTokenID tokenID, const std::string& permissionName); int32_t VerifyPermissionStatus(AccessTokenID tokenID, const std::string& permission); int32_t QueryPermissionFlag(AccessTokenID tokenID, const std::string& permissionName, uint32_t& flag); diff --git a/services/accesstokenmanager/main/cpp/include/permission/permission_manager.h b/services/accesstokenmanager/main/cpp/include/permission/permission_manager.h index 2150418c7..c7a4126f8 100644 --- a/services/accesstokenmanager/main/cpp/include/permission/permission_manager.h +++ b/services/accesstokenmanager/main/cpp/include/permission/permission_manager.h @@ -61,7 +61,7 @@ public: bool updateFlag); void RemoveDefPermissions(AccessTokenID tokenID); int VerifyHapAccessToken(AccessTokenID tokenID, const std::string& permissionName); - PermUsedTypeEnum GetPermissionUsedType(AccessTokenID tokenID, const std::string& permissionName); + PermUsedTypeEnum GetPermissionUsedType(AccessTokenID tokenID, uint32_t opCode); int GetDefPermission(const std::string& permissionName, PermissionDef& permissionDefResult); void GetDefPermissions(AccessTokenID tokenID, std::vector& permList); int GetReqPermissions( diff --git a/services/accesstokenmanager/main/cpp/include/token/hap_token_info_inner.h b/services/accesstokenmanager/main/cpp/include/token/hap_token_info_inner.h index cbe2de083..9f90c1c60 100644 --- a/services/accesstokenmanager/main/cpp/include/token/hap_token_info_inner.h +++ b/services/accesstokenmanager/main/cpp/include/token/hap_token_info_inner.h @@ -71,7 +71,7 @@ public: static void RefreshPermStateToKernel(const std::vector& constrainedList, bool hapUserIsActive, AccessTokenID tokenId, std::map& refreshedPermList); static int32_t VerifyPermissionStatus(AccessTokenID tokenID, const std::string& permissionName); - static PermUsedTypeEnum GetPermissionUsedType(AccessTokenID tokenID, const std::string& permissionName); + static PermUsedTypeEnum GetPermissionUsedType(AccessTokenID tokenID, uint32_t opCode); static int32_t QueryPermissionFlag(AccessTokenID tokenID, const std::string& permissionName, uint32_t& flag); static void GetPermStatusListByTokenId(AccessTokenID tokenID, const std::vector constrainedList, std::vector& opCodeList, std::vector& statusList); diff --git a/services/accesstokenmanager/main/cpp/src/permission/permission_data_brief.cpp b/services/accesstokenmanager/main/cpp/src/permission/permission_data_brief.cpp index 8caae91eb..e10086734 100644 --- a/services/accesstokenmanager/main/cpp/src/permission/permission_data_brief.cpp +++ b/services/accesstokenmanager/main/cpp/src/permission/permission_data_brief.cpp @@ -452,7 +452,7 @@ void PermissionDataBrief::GetPermStatusListByTokenId(AccessTokenID tokenID, return; } -PermUsedTypeEnum PermissionDataBrief::GetPermissionUsedType(AccessTokenID tokenID, int32_t opCode) +PermUsedTypeEnum PermissionDataBrief::GetPermissionUsedType(AccessTokenID tokenID, uint32_t opCode) { Utils::UniqueReadGuard infoGuard(this->permissionStateDataLock_); auto iter = requestedPermData_.find(tokenID); diff --git a/services/accesstokenmanager/main/cpp/src/permission/permission_manager.cpp b/services/accesstokenmanager/main/cpp/src/permission/permission_manager.cpp index f659e87b0..23605017b 100644 --- a/services/accesstokenmanager/main/cpp/src/permission/permission_manager.cpp +++ b/services/accesstokenmanager/main/cpp/src/permission/permission_manager.cpp @@ -132,17 +132,16 @@ int PermissionManager::VerifyHapAccessToken(AccessTokenID tokenID, const std::st return HapTokenInfoInner::VerifyPermissionStatus(tokenID, permissionName); // 从data获取 } -PermUsedTypeEnum PermissionManager::GetPermissionUsedType( - AccessTokenID tokenID, const std::string& permissionName) +PermUsedTypeEnum PermissionManager::GetPermissionUsedType(AccessTokenID tokenID, uint32_t opCode) { if ((tokenID == INVALID_TOKENID) || (TOKEN_HAP != AccessTokenIDManager::GetInstance().GetTokenIdTypeEnum(tokenID))) { LOGE(ATM_DOMAIN, ATM_TAG, "TokenID: %{public}d is invalid.", tokenID); return PermUsedTypeEnum::INVALID_USED_TYPE; } - PermUsedTypeEnum ret = HapTokenInfoInner::GetPermissionUsedType(tokenID, permissionName); + PermUsedTypeEnum ret = HapTokenInfoInner::GetPermissionUsedType(tokenID, opCode); LOGI(ATM_DOMAIN, ATM_TAG, - "Application %{public}u apply for %{public}s for type %{public}d.", tokenID, permissionName.c_str(), ret); + "Application %{public}u apply for %{public}u for type %{public}d.", tokenID, opCode, ret); return ret; } diff --git a/services/accesstokenmanager/main/cpp/src/service/accesstoken_manager_service.cpp b/services/accesstokenmanager/main/cpp/src/service/accesstoken_manager_service.cpp index d8e6d31c0..48048feb2 100644 --- a/services/accesstokenmanager/main/cpp/src/service/accesstoken_manager_service.cpp +++ b/services/accesstokenmanager/main/cpp/src/service/accesstoken_manager_service.cpp @@ -36,6 +36,7 @@ #include "parameter.h" #include "permission_list_state.h" #include "permission_manager.h" +#include "permission_map.h" #include "short_grant_manager.h" #include "string_ex.h" #include "system_ability_definition.h" @@ -123,8 +124,12 @@ void AccessTokenManagerService::OnRemoveSystemAbility(int32_t systemAbilityId, c PermUsedTypeEnum AccessTokenManagerService::GetPermissionUsedType( AccessTokenID tokenID, const std::string& permissionName) { - LOGI(ATM_DOMAIN, ATM_TAG, "TokenID=%{public}d, permission=%{public}s", tokenID, permissionName.c_str()); - return PermissionManager::GetInstance().GetPermissionUsedType(tokenID, permissionName); + uint32_t opCode; + if (!TransferPermissionToOpcode(permissionName, opCode)) { + return PermUsedTypeEnum::INVALID_USED_TYPE; + } + LOGI(ATM_DOMAIN, ATM_TAG, "TokenID=%{public}u, opCode=%{public}u", tokenID, opCode); + return PermissionManager::GetInstance().GetPermissionUsedType(tokenID, opCode); } int AccessTokenManagerService::VerifyAccessToken(AccessTokenID tokenID, const std::string& permissionName) diff --git a/services/accesstokenmanager/main/cpp/src/token/hap_token_info_inner.cpp b/services/accesstokenmanager/main/cpp/src/token/hap_token_info_inner.cpp index 70211011a..1340a0977 100644 --- a/services/accesstokenmanager/main/cpp/src/token/hap_token_info_inner.cpp +++ b/services/accesstokenmanager/main/cpp/src/token/hap_token_info_inner.cpp @@ -388,14 +388,9 @@ int32_t HapTokenInfoInner::VerifyPermissionStatus(AccessTokenID tokenID, const s return PermissionDataBrief::GetInstance().VerifyPermissionStatus(tokenID, permissionName); } -PermUsedTypeEnum HapTokenInfoInner::GetPermissionUsedType(AccessTokenID tokenID, const std::string& permissionName) +PermUsedTypeEnum HapTokenInfoInner::GetPermissionUsedType(AccessTokenID tokenID, uint32_t opCode) { - uint32_t code; - if (!TransferPermissionToOpcode(permissionName, code)) { - LOGE(ATM_DOMAIN, ATM_TAG, "permissionName is invalid %{public}s.", permissionName.c_str()); - return PermUsedTypeEnum::INVALID_USED_TYPE; - } - return PermissionDataBrief::GetInstance().GetPermissionUsedType(tokenID, code); + return PermissionDataBrief::GetInstance().GetPermissionUsedType(tokenID, opCode); } int32_t HapTokenInfoInner::QueryPermissionFlag(AccessTokenID tokenID, const std::string& permissionName, uint32_t& flag) -- Gitee