diff --git a/services/distributeddataservice/service/data_share/data_provider_config.cpp b/services/distributeddataservice/service/data_share/data_provider_config.cpp index 74a7630fb64b124ff770c1696c298e162c8dc456..11c5328cf83505f7ce60bee0ece1a48b4ab78123 100644 --- a/services/distributeddataservice/service/data_share/data_provider_config.cpp +++ b/services/distributeddataservice/service/data_share/data_provider_config.cpp @@ -42,6 +42,12 @@ DataProviderConfig::DataProviderConfig(const std::string &uri, uint32_t callerTo LoadConfigCommonStrategy::GetInfoFromProxyURI(providerInfo_.uri, providerInfo_.visitedUserId, callerTokenId, providerInfo_.bundleName); URIUtils::FormatUri(providerInfo_.uri); + // if visitedUserId is 0, set current foreground userId as visitedUserId + if (providerInfo_.visitedUserId == 0) { + if (!(AccountDelegate::GetInstance()->QueryForegroundUserId(providerInfo_.visitedUserId))) { + ZLOGE("Get foreground userId failed"); + } + } } else { auto [success, data] = URIUtils::GetUserFromProxyURI(providerInfo_.uri); if (success) { diff --git a/services/distributeddataservice/service/data_share/data_share_service_impl.cpp b/services/distributeddataservice/service/data_share/data_share_service_impl.cpp index 36a7c21f0a7d954e69ec06269f64f69598000aa7..6c30e699cca319d94bc18041cd4b386cf4fd712f 100644 --- a/services/distributeddataservice/service/data_share/data_share_service_impl.cpp +++ b/services/distributeddataservice/service/data_share/data_share_service_impl.cpp @@ -1092,21 +1092,6 @@ int32_t DataShareServiceImpl::GetBMSAndMetaDataStatus(const std::string &uri, co errCode, URIUtils::Anonymous(calledInfo.uri).c_str()); return errCode; } - DataShareDbConfig dbConfig; - DataShareDbConfig::DbConfig dbArg; - dbArg.uri = calledInfo.uri; - dbArg.bundleName = calledInfo.bundleName; - dbArg.storeName = calledInfo.storeName; - dbArg.userId = calledInfo.singleton ? 0 : calledInfo.visitedUserId; - dbArg.hasExtension = calledInfo.hasExtension; - dbArg.appIndex = calledInfo.appIndex; - auto [code, metaData] = dbConfig.GetMetaData(dbArg); - if (code != E_OK) { - ZLOGE("Get metaData fail,bundleName:%{public}s,tableName:%{public}s,tokenId:0x%{public}x, uri:%{public}s", - calledInfo.bundleName.c_str(), calledInfo.tableName.c_str(), tokenId, - URIUtils::Anonymous(calledInfo.uri).c_str()); - return E_METADATA_NOT_EXISTS; - } return E_OK; } diff --git a/services/distributeddataservice/service/test/data_share_service_impl_test.cpp b/services/distributeddataservice/service/test/data_share_service_impl_test.cpp index 65f79e4d5e4f1d8dd844013777ac221e92916629..a4c51e60c3f7a9c32108286cbcd919f98c9d7121 100644 --- a/services/distributeddataservice/service/test/data_share_service_impl_test.cpp +++ b/services/distributeddataservice/service/test/data_share_service_impl_test.cpp @@ -44,16 +44,18 @@ public: static constexpr int64_t USER_TEST = 100; static constexpr int64_t TEST_SUB_ID = 100; static constexpr uint32_t CUREEENT_USER_ID = 123; + static constexpr uint32_t NATIVE_USER_ID = 0; static void SetUpTestCase(void){}; static void TearDownTestCase(void){}; + void SetSelfTokenInfo(int32_t user); void SetUp(); void TearDown(); }; -void DataShareServiceImplTest::SetUp(void) +void DataShareServiceImplTest::SetSelfTokenInfo(int32_t user) { HapInfoParams info = { - .userID = USER_TEST, + .userID = user, .bundleName = "ohos.datasharetest.demo", .instIndex = 0, .appIDDesc = "ohos.datasharetest.demo" @@ -88,6 +90,10 @@ void DataShareServiceImplTest::SetUp(void) info.userID, info.bundleName, info.instIndex); SetSelfTokenID(testTokenId); } +void DataShareServiceImplTest::SetUp(void) +{ + SetSelfTokenInfo(USER_TEST); +} void DataShareServiceImplTest::TearDown(void) { @@ -491,4 +497,24 @@ HWTEST_F(DataShareServiceImplTest, GetCallerInfo002, TestSize.Level1) EXPECT_EQ(result.first, false); ZLOGI("DataShareServiceImplTest GetCallerInfo002 end"); } + +/** +* @tc.name: GetSilentProxyStatus001 +* @tc.desc: test GetSilentProxyStatus001 function while creating helper +* @tc.type: FUNC +* @tc.require: +*/ +HWTEST_F(DataShareServiceImplTest, GetSilentProxyStatus001, TestSize.Level1) +{ + ZLOGI("DataShareServiceImplTest GetSilentProxyStatus001 start"); + SetSelfTokenInfo(NATIVE_USER_ID); + DataShareServiceImpl dataShareServiceImpl; + auto result = dataShareServiceImpl.GetSilentProxyStatus(SLIENT_ACCESS_URI, true); + EXPECT_EQ(result, OHOS::DataShare::E_OK); + + result = dataShareServiceImpl.GetSilentProxyStatus(SLIENT_ACCESS_URI + "?user=100", true); + EXPECT_EQ(result, OHOS::DataShare::E_OK); + SetSelfTokenInfo(USER_TEST); + ZLOGI("DataShareServiceImplTest GetSilentProxyStatus001 end"); +} } // namespace OHOS::Test \ No newline at end of file