From c0b1f979b36abccbefaccc673890813e6960b546 Mon Sep 17 00:00:00 2001 From: bigtea Date: Thu, 19 Jun 2025 19:04:08 +0800 Subject: [PATCH] Fix alert Signed-off-by: bigtea --- .../include/permission/permission_manager.h | 3 --- .../src/permission/permission_data_brief.cpp | 3 ++- .../cpp/src/permission/permission_manager.cpp | 21 ------------------- .../src/token/accesstoken_info_manager.cpp | 2 +- .../accesstoken_info_manager_test.cpp | 13 ++++++++++++ 5 files changed, 16 insertions(+), 26 deletions(-) diff --git a/services/accesstokenmanager/main/cpp/include/permission/permission_manager.h b/services/accesstokenmanager/main/cpp/include/permission/permission_manager.h index a8b54dadd..71e96caf7 100644 --- a/services/accesstokenmanager/main/cpp/include/permission/permission_manager.h +++ b/services/accesstokenmanager/main/cpp/include/permission/permission_manager.h @@ -99,8 +99,6 @@ public: HapInfoCheckResult& result, std::vector& undefValues); bool InitDlpPermissionList(const std::string& bundleName, int32_t userId, std::vector& initializedList, std::vector& undefValues); - void GetStateOrFlagChangedList(std::vector& stateListBefore, - std::vector& stateListAfter, std::vector& stateChangeList); void NotifyUpdatedPermList(const std::vector& grantedPermListBefore, const std::vector& grantedPermListAfter, AccessTokenID tokenID); bool IsPermAvailableRangeSatisfied(const PermissionBriefDef& briefDef, const std::string& appDistributionType); @@ -119,7 +117,6 @@ private: bool GetLocationPermissionIndex(std::vector& reqPermList, LocationIndex& locationIndex); bool GetLocationPermissionState(AccessTokenID tokenID, std::vector& reqPermList, std::vector& permsList, int32_t apiVersion, const LocationIndex& locationIndex); - bool IsPermissionStateOrFlagMatched(const PermissionStatus& stata1, const PermissionStatus& stata2); void FillUndefinedPermVector(const std::string& permissionName, const std::string& appDistributionType, const HapPolicy& policy, std::vector& undefValues); bool AclAndEdmCheck(const PermissionBriefDef& briefDef, const HapPolicy& policy, const std::string& permissionName, 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 cc6cd8367..d1986c22a 100644 --- a/services/accesstokenmanager/main/cpp/src/permission/permission_data_brief.cpp +++ b/services/accesstokenmanager/main/cpp/src/permission/permission_data_brief.cpp @@ -391,7 +391,8 @@ int32_t PermissionDataBrief::StorePermissionBriefData(AccessTokenID tokenId, GenericValues genericValues; PermissionStatus permState; if (!GetPermissionStatus(data, permState)) { - return ERR_PERMISSION_NOT_EXIST; + LOGE(ATM_DOMAIN, ATM_TAG, "Permission not exist, code=%{public}d", static_cast(data.permCode)); + continue; } genericValues.Put(TokenFiledConst::FIELD_TOKEN_ID, static_cast(tokenId)); DataTranslator::TranslationIntoGenericValues(permState, genericValues); diff --git a/services/accesstokenmanager/main/cpp/src/permission/permission_manager.cpp b/services/accesstokenmanager/main/cpp/src/permission/permission_manager.cpp index 599ffc91b..949652a13 100644 --- a/services/accesstokenmanager/main/cpp/src/permission/permission_manager.cpp +++ b/services/accesstokenmanager/main/cpp/src/permission/permission_manager.cpp @@ -776,27 +776,6 @@ void PermissionManager::NotifyUpdatedPermList(const std::vector& gr } } -bool PermissionManager::IsPermissionStateOrFlagMatched(const PermissionStatus& state1, - const PermissionStatus& state2) -{ - return ((state1.grantStatus == state2.grantStatus) && (state1.grantFlag == state2.grantFlag)); -} - -void PermissionManager::GetStateOrFlagChangedList(std::vector& stateListBefore, - std::vector& stateListAfter, std::vector& stateChangeList) -{ - uint32_t size = stateListBefore.size(); - - for (uint32_t i = 0; i < size; ++i) { - PermissionStatus state1 = stateListBefore[i]; - PermissionStatus state2 = stateListAfter[i]; - - if (!IsPermissionStateOrFlagMatched(state1, state2)) { - stateChangeList.emplace_back(state2); - } - } -} - void PermissionManager::NotifyPermGrantStoreResult(bool result, uint64_t timestamp) { grantEvent_.NotifyPermGrantStoreResult(result, timestamp); diff --git a/services/accesstokenmanager/main/cpp/src/token/accesstoken_info_manager.cpp b/services/accesstokenmanager/main/cpp/src/token/accesstoken_info_manager.cpp index 0355c17c3..f10f89e4e 100644 --- a/services/accesstokenmanager/main/cpp/src/token/accesstoken_info_manager.cpp +++ b/services/accesstokenmanager/main/cpp/src/token/accesstoken_info_manager.cpp @@ -1402,7 +1402,7 @@ bool AccessTokenInfoManager::IsPermissionRestrictedByUserPolicy(AccessTokenID id std::shared_ptr infoPtr = AccessTokenInfoManager::GetInstance().GetHapTokenInfoInner(id); if (infoPtr == nullptr) { LOGE(ATM_DOMAIN, ATM_TAG, "Token %{public}u is invalid.", id); - return ERR_PARAM_INVALID; + return true; } int32_t userId = infoPtr->GetUserID(); Utils::UniqueReadGuard infoGuard(this->userPolicyLock_); diff --git a/services/accesstokenmanager/test/unittest/accesstoken_info_manager_test.cpp b/services/accesstokenmanager/test/unittest/accesstoken_info_manager_test.cpp index aefb7b420..b15a294ee 100644 --- a/services/accesstokenmanager/test/unittest/accesstoken_info_manager_test.cpp +++ b/services/accesstokenmanager/test/unittest/accesstoken_info_manager_test.cpp @@ -2418,6 +2418,19 @@ HWTEST_F(AccessTokenInfoManagerTest, GetPermissionRequestToggleStatus002, TestSi ASSERT_EQ(setStatusOpen, getStatus); } + +/** + * @tc.name: IsPermissionRestrictedByUserPolicy001 + * @tc.desc: IsPermissionRestrictedByUserPolicy function test with invalid tokenid. + * @tc.type: FUNC + * @tc.require: + */ +HWTEST_F(AccessTokenInfoManagerTest, IsPermissionRestrictedByUserPolicy001, TestSize.Level0) +{ + AccessTokenID tokenID = 123; // invalid tokenid + EXPECT_TRUE(AccessTokenInfoManager::GetInstance().IsPermissionRestrictedByUserPolicy(tokenID, + "ohos.permission.CAMERA")); +} } // namespace AccessToken } // namespace Security } // namespace OHOS \ No newline at end of file -- Gitee