diff options
Diffstat (limited to 'src/components/application_manager/src/policies/policy_handler.cc')
-rw-r--r-- | src/components/application_manager/src/policies/policy_handler.cc | 65 |
1 files changed, 34 insertions, 31 deletions
diff --git a/src/components/application_manager/src/policies/policy_handler.cc b/src/components/application_manager/src/policies/policy_handler.cc index bacd478138..c8c2a25a6d 100644 --- a/src/components/application_manager/src/policies/policy_handler.cc +++ b/src/components/application_manager/src/policies/policy_handler.cc @@ -866,12 +866,11 @@ void PolicyHandler::ExchangePolicyManager( atomic_policy_manager_.swap(policy_manager); } -std::vector<policy::FunctionalGroupPermission> -PolicyHandler::CollectRegisteredAppsPermissions() { +bool PolicyHandler::CollectRegisteredAppsPermissions( + std::vector<FunctionalGroupPermission>& out_permissions) { SDL_LOG_AUTO_TRACE(); const auto policy_manager = LoadPolicyManager(); - POLICY_LIB_CHECK_OR_RETURN(policy_manager, - std::vector<policy::FunctionalGroupPermission>()); + POLICY_LIB_CHECK_OR_RETURN(policy_manager, false); // If no specific app was passed, get permissions for all currently registered // applications sync_primitives::AutoLock lock(app_to_device_link_lock_); @@ -887,14 +886,17 @@ PolicyHandler::CollectRegisteredAppsPermissions() { it->first, it->second, group_permissions); consolidator.Consolidate(group_permissions); } - return consolidator.GetConsolidatedPermissions(); + + out_permissions = consolidator.GetConsolidatedPermissions(); + return true; } -std::vector<FunctionalGroupPermission> PolicyHandler::CollectAppPermissions( - const uint32_t connection_key) { +bool PolicyHandler::CollectAppPermissions( + const uint32_t connection_key, + std::vector<policy::FunctionalGroupPermission>& out_permissions) { std::vector<FunctionalGroupPermission> group_permissions; const auto policy_manager = LoadPolicyManager(); - POLICY_LIB_CHECK_OR_RETURN(policy_manager, group_permissions); + POLICY_LIB_CHECK_OR_RETURN(policy_manager, false); // Single app only ApplicationSharedPtr app = application_manager_.application(connection_key); @@ -905,7 +907,7 @@ std::vector<FunctionalGroupPermission> PolicyHandler::CollectAppPermissions( << "' " "not found within registered applications."); - return group_permissions; + return false; } DeviceParams device_params = GetDeviceParams( @@ -914,14 +916,13 @@ std::vector<FunctionalGroupPermission> PolicyHandler::CollectAppPermissions( if (device_params.device_mac_address.empty()) { SDL_LOG_WARN("Couldn't find device, which hosts application."); - return group_permissions; + return false; } - policy_manager->GetUserConsentForApp(device_params.device_mac_address, - app->policy_app_id(), - group_permissions); + policy_manager->GetUserConsentForApp( + device_params.device_mac_address, app->policy_app_id(), out_permissions); - return group_permissions; + return true; } void PolicyHandler::OnGetListOfPermissions(const uint32_t connection_key, @@ -935,15 +936,12 @@ void PolicyHandler::OnGetListOfPermissions(const uint32_t connection_key, const bool is_app_registered = NULL != app.get(); const bool is_connection_key_valid = is_app_registered && connection_key; - const std::vector<policy::FunctionalGroupPermission> permissions = - is_connection_key_valid ? CollectAppPermissions(connection_key) - : CollectRegisteredAppsPermissions(); + std::vector<policy::FunctionalGroupPermission> permissions; - if (permissions.empty() && is_connection_key_valid) { - SDL_LOG_ERROR("No permissions found for application with connection key:" - << connection_key); - return; - } + const bool collect_result = + is_connection_key_valid + ? CollectAppPermissions(connection_key, permissions) + : CollectRegisteredAppsPermissions(permissions); MessageHelper::SendGetListOfPermissionsResponse( permissions, @@ -951,7 +949,14 @@ void PolicyHandler::OnGetListOfPermissions(const uint32_t connection_key, policy_manager->GetExternalConsentStatus(), #endif // EXTERNAL_PROPRIETARY_MODE correlation_id, - application_manager_); + application_manager_, + collect_result); + + if (!collect_result) { + SDL_LOG_ERROR( + "Permissions collection failed for application with connection key:" + << connection_key); + } } void PolicyHandler::LinkAppsToDevice() { @@ -1232,12 +1237,6 @@ void PolicyHandler::OnPendingPermissionChange( } bool PolicyHandler::SendMessageToSDK(const BinaryMessage& pt_string, - const std::string& url) { - const uint32_t app_id = GetAppIdForSending(); - return SendMessageToSDK(pt_string, url, app_id); -} - -bool PolicyHandler::SendMessageToSDK(const BinaryMessage& pt_string, const std::string& url, const uint32_t app_id) { SDL_LOG_AUTO_TRACE(); @@ -2009,7 +2008,9 @@ void PolicyHandler::AddStatisticsInfo(int type) { ++count_of_iap_buffer_full; break; } - default: { SDL_LOG_WARN("Type of statistics is unknown"); } + default: { + SDL_LOG_WARN("Type of statistics is unknown"); + } } } @@ -2028,7 +2029,9 @@ void PolicyHandler::OnSystemError(int code) { ++count_sync_out_of_memory; break; } - default: { SDL_LOG_WARN("System error is unknown"); } + default: { + SDL_LOG_WARN("System error is unknown"); + } } } |