From 2e4966b7fad539223a7562d1698680a4d95d9212 Mon Sep 17 00:00:00 2001 From: zhengzhuolan Date: Thu, 3 Jul 2025 09:05:09 +0800 Subject: [PATCH] Add code Signed-off-by: zhengzhuolan --- .../test/unittest/notification_helper_test.cpp | 2 +- ...d_notification_distributed_manager_service.cpp | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/frameworks/ans/test/unittest/notification_helper_test.cpp b/frameworks/ans/test/unittest/notification_helper_test.cpp index 4d998ec1f..9bebba049 100644 --- a/frameworks/ans/test/unittest/notification_helper_test.cpp +++ b/frameworks/ans/test/unittest/notification_helper_test.cpp @@ -1374,7 +1374,7 @@ HWTEST_F(NotificationHelperTest, GetDistributedDevicelist_0100, Function | Small std::vector deviceTypes; NotificationHelper notificationHelper; ErrCode ret = notificationHelper.GetDistributedDevicelist(deviceTypes); - EXPECT_EQ(ret, ERR_OK); + EXPECT_EQ(ret, ERR_ANS_PERMISSION_DENIED); } } } diff --git a/services/ans/src/distributed_manager/advanced_notification_distributed_manager_service.cpp b/services/ans/src/distributed_manager/advanced_notification_distributed_manager_service.cpp index 8ffe94edc..b080b4d64 100644 --- a/services/ans/src/distributed_manager/advanced_notification_distributed_manager_service.cpp +++ b/services/ans/src/distributed_manager/advanced_notification_distributed_manager_service.cpp @@ -645,6 +645,11 @@ ErrCode AdvancedNotificationService::SetDistributedEnabled(const std::string &de return ERR_ANS_NON_SYSTEM_APP; } + if (!AccessTokenHelper::CheckPermission(OHOS_PERMISSION_NOTIFICATION_CONTROLLER)) { + ANS_LOGE("no permission"); + return ERR_ANS_PERMISSION_DENIED; + } + auto result = NotificationPreferences::GetInstance()->SetDistributedEnabled(deviceType, enabled ? NotificationConstant::ENABLE_STATUS::ENABLE_TRUE : NotificationConstant::ENABLE_STATUS::ENABLE_FALSE); if (result == ERR_OK) { @@ -677,6 +682,11 @@ ErrCode AdvancedNotificationService::IsDistributedEnabled(const std::string &dev return ERR_ANS_NON_SYSTEM_APP; } + if (!AccessTokenHelper::CheckPermission(OHOS_PERMISSION_NOTIFICATION_CONTROLLER)) { + ANS_LOGE("no permission"); + return ERR_ANS_PERMISSION_DENIED; + } + NotificationConstant::ENABLE_STATUS enableStatus; ErrCode errResult = NotificationPreferences::GetInstance()->IsDistributedEnabled(deviceType, enableStatus); enabled = (enableStatus == NotificationConstant::ENABLE_STATUS::ENABLE_TRUE); @@ -751,6 +761,11 @@ ErrCode AdvancedNotificationService::GetDistributedDevicelist(std::vectorGetDistributedDevicelist(deviceTypes); } -- Gitee