!3705 fix loop deps again

Merge pull request !3705 from lihehe/newloop
This commit is contained in:
openharmony_ci
2025-09-04 02:34:54 +00:00
committed by Gitee
11 changed files with 97 additions and 53 deletions
@@ -858,7 +858,8 @@ void NapiRequestPermission::GetPermissionsStatusExecute(napi_env env, void* data
LOGD(ATM_DOMAIN, ATM_TAG, "PermList size: %{public}zu, asyncContext->permissionList size: %{public}zu.",
permList.size(), asyncContext->permissionList.size());
asyncContext->result.errorCode = AccessTokenKit::GetPermissionsStatus(asyncContext->tokenId, permList);
asyncContext->SetErrorCode(AccessTokenKit::GetPermissionsStatus(asyncContext->tokenId, permList));
for (const auto& permState : permList) {
LOGD(ATM_DOMAIN, ATM_TAG, "Permission: %{public}s", permState.permissionName.c_str());
asyncContext->permissionQueryResults.emplace_back(permState.state);
@@ -56,6 +56,10 @@ struct RequestAsyncContext : public AtManagerAsyncWorkData {
#ifdef EVENTHANDLER_ENABLE
std::shared_ptr<AppExecFwk::EventHandler> handler_ = nullptr;
#endif
void SetErrorCode(int32_t errcode)
{
result.errorCode = errcode;
}
};
struct RequestAsyncContextHandle {
@@ -495,15 +495,16 @@ static bool IsPermissionReqValid(int32_t tokenApl, const std::string& permission
return false;
}
std::string ConfigPolicLoader::DumpNativeTokenInfo(const NativeTokenInfoBase& native)
static void AddNativeTokenInfo(CJsonUnique& j, const NativeTokenInfoBase& native)
{
CJsonUnique j = CreateJson();
(void)AddUnsignedIntToJson(j, "tokenID", native.tokenID);
(void)AddStringToJson(j, "processName", native.processName);
(void)AddIntToJson(j, "apl", native.apl);
}
CJsonUnique permStateListJson = CreateJsonArray();
CJsonUnique invalidPermStringJson = CreateJsonArray();
static void AddPermStateListInNativeTokenInfo(const NativeTokenInfoBase& native,
CJsonUnique& permStateListJson, CJsonUnique& invalidPermStringJson)
{
for (auto iter = native.permStateList.begin(); iter != native.permStateList.end(); ++iter) {
if (!IsPermissionReqValid(native.apl, iter->permissionName, native.nativeAcls)) {
CJsonUnique tmpJson = CreateJsonString(iter->permissionName);
@@ -516,6 +517,16 @@ std::string ConfigPolicLoader::DumpNativeTokenInfo(const NativeTokenInfoBase& na
(void)AddUnsignedIntToJson(permStateJson, "grantFlag", iter->grantFlag);
(void)AddObjToArray(permStateListJson, permStateJson);
}
}
std::string ConfigPolicLoader::DumpNativeTokenInfo(const NativeTokenInfoBase& native)
{
CJsonUnique j = CreateJson();
AddNativeTokenInfo(j, native);
CJsonUnique permStateListJson = CreateJsonArray();
CJsonUnique invalidPermStringJson = CreateJsonArray();
AddPermStateListInNativeTokenInfo(native, permStateListJson, invalidPermStringJson);
(void)AddObjToJson(j, "permStateList", permStateListJson);
(void)AddObjToJson(j, "invalidPermList", invalidPermStringJson);
@@ -79,17 +79,17 @@ public:
* Convert nodeId to deviceId(UUID) if possible.
*
* @param nodeId which is considered as indefinite id, maybe deviceId(UUID) or networkId.
* @return The deviceId if local or device online, otherwise return empty string.
* @return The deviceId if device online, otherwise return empty string.
*/
std::string ConvertToUniversallyUniqueIdOrFetch(const std::string &nodeId) const;
std::string ConvertToUniversallyUniqueId(const std::string &nodeId) const;
/**
* Convert nodeId to deviceId(UDID) if possible.
*
* @param nodeId which is considered as indefinite id, maybe deviceId(UDID) or networkId.
* @return The deviceId if local or device online, otherwise return empty string.
* @return The deviceId if device online, otherwise return empty string.
*/
std::string ConvertToUniqueDeviceIdOrFetch(const std::string &nodeId) const;
std::string ConvertToUniqueDeviceId(const std::string &nodeId, bool& isFoundDevice) const;
/**
* Check nodeId is uuid or not.
@@ -100,6 +100,22 @@ public:
*/
std::string GetUniqueDeviceIdByNodeId(const std::string &networkId);
/**
* Convert nodeId to deviceId(UUID) if possible.
*
* @param nodeId which is considered as indefinite id, maybe deviceId(UUID) or networkId.
* @return The deviceId if local or device online, otherwise return empty string.
*/
std::string ConvertToUniversallyUniqueIdOrFetch(const std::string &nodeId);
/**
* Convert nodeId to deviceId(UDID) if possible.
*
* @param nodeId which is considered as indefinite id, maybe deviceId(UDID) or networkId.
* @return The deviceId if local or device online, otherwise return empty string.
*/
std::string ConvertToUniqueDeviceIdOrFetch(const std::string &nodeId);
bool GetNetworkIdBySocket(const int32_t socket, std::string& networkId);
int32_t GetRepeatTimes();
@@ -86,11 +86,11 @@ void DeviceInfoManager::RemoveRemoteDeviceInfo(const std::string &nodeId, Device
}
}
std::string DeviceInfoManager::ConvertToUniversallyUniqueIdOrFetch(const std::string &nodeId) const
std::string DeviceInfoManager::ConvertToUniversallyUniqueId(const std::string &nodeId) const
{
std::string result;
if (!DataValidator::IsDeviceIdValid(nodeId)) {
LOGE(ATM_DOMAIN, ATM_TAG, "ConvertToUniversallyUniqueIdOrFetch: nodeId is invalid.");
LOGE(ATM_DOMAIN, ATM_TAG, "ConvertToUniversallyUniqueId: nodeId is invalid.");
return result;
}
DeviceInfo deviceInfo;
@@ -100,31 +100,19 @@ std::string DeviceInfoManager::ConvertToUniversallyUniqueIdOrFetch(const std::st
return deviceInfo.deviceId.universallyUniqueId;
}
std::string DeviceInfoManager::ConvertToUniqueDeviceIdOrFetch(const std::string &nodeId) const
std::string DeviceInfoManager::ConvertToUniqueDeviceId(const std::string &nodeId, bool& isFoundDevice) const
{
isFoundDevice = false;
std::string result;
if (!DataValidator::IsDeviceIdValid(nodeId)) {
LOGE(ATM_DOMAIN, ATM_TAG, "ConvertToUniqueDeviceIdOrFetch: nodeId is invalid.");
LOGE(ATM_DOMAIN, ATM_TAG, "ConvertToUniqueDeviceId: nodeId is invalid.");
return result;
}
DeviceInfo deviceInfo;
if (DeviceInfoRepository::GetInstance().FindDeviceInfo(nodeId, DeviceIdType::UNKNOWN, deviceInfo)) {
std::string uniqueDeviceId = deviceInfo.deviceId.uniqueDeviceId;
if (uniqueDeviceId.empty()) {
std::string udid = SoftBusManager::GetInstance().GetUniqueDeviceIdByNodeId(nodeId);
if (!udid.empty()) {
result = udid;
} else {
LOGD(ATM_DOMAIN, ATM_TAG,
"FindDeviceInfo succeed, udid and local udid is empty, nodeId(%{public}s)",
ConstantCommon::EncryptDevId(nodeId).c_str());
}
} else {
LOGD(ATM_DOMAIN, ATM_TAG,
"FindDeviceInfo succeed, udid is empty, nodeId(%{public}s) ",
ConstantCommon::EncryptDevId(nodeId).c_str());
result = uniqueDeviceId;
}
LOGD(ATM_DOMAIN, ATM_TAG, "FindDeviceInfo succeed, nodeId(%{public}s)", nodeId.c_str());
isFoundDevice = true;
return deviceInfo.deviceId.uniqueDeviceId;
} else {
LOGD(ATM_DOMAIN, ATM_TAG, "FindDeviceInfo failed, nodeId(%{public}s)",
ConstantCommon::EncryptDevId(nodeId).c_str());
@@ -20,6 +20,7 @@
#endif
#include "device_info_manager.h"
#include "remote_command_factory.h"
#include "soft_bus_manager.h"
#include "token_sync_manager_service.h"
#include "accesstoken_kit.h"
#include "constant_common.h"
@@ -265,7 +266,7 @@ std::shared_ptr<RemoteCommandExecutor> RemoteCommandManager::GetOrCreateRemoteCo
std::shared_ptr<RpcChannel> RemoteCommandManager::GetExecutorChannel(const std::string &nodeId)
{
LOGD(ATM_DOMAIN, ATM_TAG, "Convert udid start, nodeId:%{public}s", ConstantCommon::EncryptDevId(nodeId).c_str());
std::string udid = DeviceInfoManager::GetInstance().ConvertToUniqueDeviceIdOrFetch(nodeId);
std::string udid = SoftBusManager::GetInstance().ConvertToUniqueDeviceIdOrFetch(nodeId);
if (!DataValidator::IsDeviceIdValid(udid)) {
LOGW(ATM_DOMAIN, ATM_TAG, "Converted udid is invalid, nodeId:%{public}s",
ConstantCommon::EncryptDevId(nodeId).c_str());
@@ -20,6 +20,7 @@
#include "device_info_manager.h"
#include "device_manager.h"
#include "iservice_registry.h"
#include "soft_bus_manager.h"
#include "soft_bus_socket_listener.h"
#include "system_ability_definition.h"
#include "constant_common.h"
@@ -85,11 +86,8 @@ void SoftBusDeviceConnectionListener::UnloadTokensyncService()
void SoftBusDeviceConnectionListener::OnDeviceOffline(const DistributedHardware::DmDeviceInfo &info)
{
std::string networkId = std::string(info.networkId);
std::string uuid = DeviceInfoManager::GetInstance().ConvertToUniversallyUniqueIdOrFetch(networkId);
if (uuid.empty()) {
uuid = SoftBusManager::GetInstance().GetUniversallyUniqueIdByNodeId(networkId);
}
std::string udid = DeviceInfoManager::GetInstance().ConvertToUniqueDeviceIdOrFetch(networkId);
std::string uuid = SoftBusManager::GetInstance().ConvertToUniversallyUniqueIdOrFetch(networkId);
std::string udid = SoftBusManager::GetInstance().ConvertToUniqueDeviceIdOrFetch(networkId);
if ((uuid == "") || (udid == "")) {
LOGE(ATM_DOMAIN, ATM_TAG, "Uuid or udid is empty, offline failed.");
return;
@@ -28,6 +28,7 @@
#include "libraryloader.h"
#include "remote_command_manager.h"
#include "soft_bus_device_connection_listener.h"
#include "soft_bus_manager.h"
#include "soft_bus_socket_listener.h"
#include "token_setproc.h"
@@ -543,6 +544,34 @@ int SoftBusManager::FulfillLocalDeviceInfo()
fulfillMutex_.unlock();
return Constant::SUCCESS;
}
std::string SoftBusManager::ConvertToUniversallyUniqueIdOrFetch(const std::string& nodeId)
{
std::string uuid = DeviceInfoManager::GetInstance().ConvertToUniversallyUniqueId(nodeId);
if (uuid.empty()) {
uuid = GetUniversallyUniqueIdByNodeId(nodeId);
}
return uuid;
}
std::string SoftBusManager::ConvertToUniqueDeviceIdOrFetch(const std::string& nodeId)
{
bool isFoundDevice = false;
std::string uniqueDeviceId = DeviceInfoManager::GetInstance().ConvertToUniqueDeviceId(nodeId, isFoundDevice);
LOGE(ATM_DOMAIN, ATM_TAG, "nodeId %{public}d", isFoundDevice);
if (uniqueDeviceId.empty() && isFoundDevice) {
std::string udid = GetUniqueDeviceIdByNodeId(nodeId);
if (!udid.empty()) {
uniqueDeviceId = udid;
LOGD(ATM_DOMAIN, ATM_TAG,
"udid is empty, use local udid, nodeId(%{public}s)", ConstantCommon::EncryptDevId(nodeId).c_str());
} else {
LOGD(ATM_DOMAIN, ATM_TAG,
"Udid and local udid is empty, nodeId(%{public}s)", ConstantCommon::EncryptDevId(nodeId).c_str());
}
}
return uniqueDeviceId;
}
} // namespace AccessToken
} // namespace Security
} // namespace OHOS
@@ -44,6 +44,7 @@
#include "remote_command_manager.h"
#include "socket.h"
#include "soft_bus_device_connection_listener.h"
#include "soft_bus_manager.h"
#include "soft_bus_socket_listener.h"
#include "test_common.h"
#include "token_setproc.h"
@@ -134,11 +135,8 @@ void TokenSyncServiceTest::TearDown()
void TokenSyncServiceTest::OnDeviceOffline(const DistributedHardware::DmDeviceInfo &info)
{
std::string networkId = info.networkId;
std::string uuid = DeviceInfoManager::GetInstance().ConvertToUniversallyUniqueIdOrFetch(networkId);
if (uuid.empty()) {
uuid = SoftBusManager::GetInstance().GetUniversallyUniqueIdByNodeId(networkId);
}
std::string udid = DeviceInfoManager::GetInstance().ConvertToUniqueDeviceIdOrFetch(networkId);
std::string uuid = SoftBusManager::GetInstance().ConvertToUniversallyUniqueIdOrFetch(networkId);
std::string udid = SoftBusManager::GetInstance().ConvertToUniqueDeviceIdOrFetch(networkId);
LOGI(ATM_DOMAIN, ATM_TAG,
"networkId: %{public}s, uuid: %{public}s, udid: %{public}s",
@@ -45,6 +45,7 @@
#undef private
#include "socket.h"
#include "soft_bus_device_connection_listener.h"
#include "soft_bus_manager.h"
#include "soft_bus_socket_listener.h"
#include "test_common.h"
#include "token_setproc.h"
@@ -143,11 +144,8 @@ void TokenSyncServiceTest::TearDown()
void TokenSyncServiceTest::OnDeviceOffline(const DistributedHardware::DmDeviceInfo &info)
{
std::string networkId = info.networkId;
std::string uuid = DeviceInfoManager::GetInstance().ConvertToUniversallyUniqueIdOrFetch(networkId);
if (uuid.empty()) {
uuid = SoftBusManager::GetInstance().GetUniversallyUniqueIdByNodeId(networkId);
}
std::string udid = DeviceInfoManager::GetInstance().ConvertToUniqueDeviceIdOrFetch(networkId);
std::string uuid = SoftBusManager::GetInstance().ConvertToUniversallyUniqueIdOrFetch(networkId);
std::string udid = SoftBusManager::GetInstance().ConvertToUniqueDeviceIdOrFetch(networkId);
LOGI(ATM_DOMAIN, ATM_TAG,
"networkId: %{public}s, uuid: %{public}s, udid: %{public}s",
@@ -1020,18 +1018,18 @@ HWTEST_F(TokenSyncServiceTest, RemoveRemoteDeviceInfo001, TestSize.Level0)
/**
* @tc.name: ConvertToUniversallyUniqueIdOrFetch001
* @tc.desc: DeviceInfoManager::ConvertToUniversallyUniqueIdOrFetch function test
* @tc.desc: SoftBusManager::ConvertToUniversallyUniqueIdOrFetch function test
* @tc.type: FUNC
* @tc.require:
*/
HWTEST_F(TokenSyncServiceTest, ConvertToUniversallyUniqueIdOrFetch001, TestSize.Level0)
{
std::string nodeId;
ASSERT_EQ("", DeviceInfoManager::GetInstance().ConvertToUniversallyUniqueIdOrFetch(nodeId)); // nodeId invalid
ASSERT_EQ("", SoftBusManager::GetInstance().ConvertToUniversallyUniqueIdOrFetch(nodeId)); // nodeId invalid
nodeId = "123";
// FindDeviceInfo false
ASSERT_EQ("", DeviceInfoManager::GetInstance().ConvertToUniversallyUniqueIdOrFetch(nodeId));
ASSERT_EQ("", SoftBusManager::GetInstance().ConvertToUniversallyUniqueIdOrFetch(nodeId));
std::string networkId = "123";
std::string universallyUniqueId = "123";
@@ -1043,7 +1041,7 @@ HWTEST_F(TokenSyncServiceTest, ConvertToUniversallyUniqueIdOrFetch001, TestSize.
nodeId = "123";
// FindDeviceInfo true + universallyUniqueId is not empty
DeviceInfoManager::GetInstance().ConvertToUniversallyUniqueIdOrFetch(nodeId);
SoftBusManager::GetInstance().ConvertToUniversallyUniqueIdOrFetch(nodeId);
nodeId = uniqueDeviceId;
// FindDeviceInfo true + uniqueDeviceId != localDevice false
@@ -1057,18 +1055,18 @@ HWTEST_F(TokenSyncServiceTest, ConvertToUniversallyUniqueIdOrFetch001, TestSize.
/**
* @tc.name: ConvertToUniqueDeviceIdOrFetch001
* @tc.desc: DeviceInfoManager::ConvertToUniqueDeviceIdOrFetch function test
* @tc.desc: SoftBusManager::ConvertToUniqueDeviceIdOrFetch function test
* @tc.type: FUNC
* @tc.require:
*/
HWTEST_F(TokenSyncServiceTest, ConvertToUniqueDeviceIdOrFetch001, TestSize.Level0)
{
std::string nodeId;
ASSERT_EQ("", DeviceInfoManager::GetInstance().ConvertToUniqueDeviceIdOrFetch(nodeId)); // nodeId invalid
ASSERT_EQ("", SoftBusManager::GetInstance().ConvertToUniqueDeviceIdOrFetch(nodeId)); // nodeId invalid
nodeId = "123";
// FindDeviceInfo false
ASSERT_EQ("", DeviceInfoManager::GetInstance().ConvertToUniqueDeviceIdOrFetch(nodeId));
ASSERT_EQ("", SoftBusManager::GetInstance().ConvertToUniqueDeviceIdOrFetch(nodeId));
std::string networkId = "123";
std::string universallyUniqueId = "123";
@@ -1080,7 +1078,7 @@ HWTEST_F(TokenSyncServiceTest, ConvertToUniqueDeviceIdOrFetch001, TestSize.Level
nodeId = "123";
// FindDeviceInfo true + universallyUniqueId is not empty
DeviceInfoManager::GetInstance().ConvertToUniqueDeviceIdOrFetch(nodeId);
SoftBusManager::GetInstance().ConvertToUniqueDeviceIdOrFetch(nodeId);
nodeId = uniqueDeviceId;
// FindDeviceInfo true + uniqueDeviceId != localDevice false