summaryrefslogtreecommitdiff
path: root/src/components/policy/policy_external/src/policy_manager_impl.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/policy/policy_external/src/policy_manager_impl.cc')
-rw-r--r--src/components/policy/policy_external/src/policy_manager_impl.cc137
1 files changed, 46 insertions, 91 deletions
diff --git a/src/components/policy/policy_external/src/policy_manager_impl.cc b/src/components/policy/policy_external/src/policy_manager_impl.cc
index 5ebe2adb2c..9c181f5e75 100644
--- a/src/components/policy/policy_external/src/policy_manager_impl.cc
+++ b/src/components/policy/policy_external/src/policy_manager_impl.cc
@@ -528,7 +528,7 @@ bool PolicyManagerImpl::LoadPT(const std::string& file,
CheckAppPolicyResults PolicyManagerImpl::CheckPermissionsChanges(
const std::shared_ptr<policy_table::Table> pt_update,
const std::shared_ptr<policy_table::Table> snapshot) {
- LOG4CXX_INFO(logger_, "Checking incoming permissions.");
+ LOG4CXX_AUTO_TRACE(logger_);
// Replace predefined policies with its actual setting, e.g. "123":"default"
// to actual values of default section
@@ -719,11 +719,10 @@ void PolicyManagerImpl::OnAppsSearchCompleted(const bool trigger_ptu) {
}
const std::vector<std::string> PolicyManagerImpl::GetAppRequestTypes(
- const transport_manager::DeviceHandle& device_handle,
const std::string policy_app_id) const {
std::vector<std::string> request_types;
- if (kDeviceAllowed != cache_->GetDeviceConsent(
- GetCurrentDeviceId(device_handle, policy_app_id))) {
+ if (kDeviceDisallowed ==
+ cache_->GetDeviceConsent(GetCurrentDeviceId(policy_app_id))) {
cache_->GetAppRequestTypes(kPreDataConsentId, request_types);
} else {
cache_->GetAppRequestTypes(policy_app_id, request_types);
@@ -823,8 +822,7 @@ bool PolicyManagerImpl::UnknownRPCPassthroughAllowed(
return cache_->UnknownRPCPassthroughAllowed(policy_app_id);
}
-void PolicyManagerImpl::CheckPermissions(const PTString& device_id,
- const PTString& app_id,
+void PolicyManagerImpl::CheckPermissions(const PTString& app_id,
const PTString& hmi_level,
const PTString& rpc,
const RPCParams& rpc_params,
@@ -833,6 +831,8 @@ void PolicyManagerImpl::CheckPermissions(const PTString& device_id,
"CheckPermissions for " << app_id << " and rpc " << rpc
<< " for " << hmi_level << " level.");
+ const std::string device_id = GetCurrentDeviceId(app_id);
+
Permissions rpc_permissions;
// Check, if there are calculated permission present in cache
@@ -1002,8 +1002,9 @@ policy_table::Strings PolicyManagerImpl::GetGroupsNames(
}
void PolicyManagerImpl::SendNotificationOnPermissionsUpdated(
- const std::string& device_id, const std::string& application_id) {
+ const std::string& application_id) {
LOG4CXX_AUTO_TRACE(logger_);
+ const std::string device_id = GetCurrentDeviceId(application_id);
if (device_id.empty()) {
LOG4CXX_WARN(logger_,
"Couldn't find device info for application id "
@@ -1031,16 +1032,15 @@ void PolicyManagerImpl::SendNotificationOnPermissionsUpdated(
const ApplicationOnDevice who = {device_id, application_id};
if (access_remote_->IsAppRemoteControl(who)) {
- listener()->OnPermissionsUpdated(
- device_id, application_id, notification_data);
+ listener()->OnPermissionsUpdated(application_id, notification_data);
return;
}
std::string default_hmi;
- GetDefaultHmi(device_id, application_id, &default_hmi);
+ GetDefaultHmi(application_id, &default_hmi);
listener()->OnPermissionsUpdated(
- device_id, application_id, notification_data, default_hmi);
+ application_id, notification_data, default_hmi);
}
bool PolicyManagerImpl::CleanupUnpairedDevices() {
@@ -1073,16 +1073,14 @@ void PolicyManagerImpl::SetUserConsentForDevice(const std::string& device_id,
}
bool PolicyManagerImpl::ReactOnUserDevConsentForApp(
- const transport_manager::DeviceHandle& device_handle,
- const std::string& app_id,
- const bool is_device_allowed) {
- auto current_request_types = GetAppRequestTypes(device_handle, app_id);
+ const std::string& app_id, const bool is_device_allowed) {
+ std::vector<std::string> current_request_types = GetAppRequestTypes(app_id);
std::string current_priority, new_priority;
GetPriority(app_id, &current_priority);
bool result = cache_->ReactOnUserDevConsentForApp(app_id, is_device_allowed);
- auto new_request_types = GetAppRequestTypes(device_handle, app_id);
+ std::vector<std::string> new_request_types = GetAppRequestTypes(app_id);
GetPriority(app_id, &new_priority);
std::sort(current_request_types.begin(), current_request_types.end());
std::sort(new_request_types.begin(), new_request_types.end());
@@ -1107,8 +1105,7 @@ bool PolicyManagerImpl::ReactOnUserDevConsentForApp(
}
if (permissions.requestTypeChanged || (!permissions.priority.empty())) {
- const auto& device_id = GetCurrentDeviceId(device_handle, app_id);
- listener_->SendOnAppPermissionsChanged(permissions, device_id, app_id);
+ listener_->SendOnAppPermissionsChanged(permissions, app_id);
}
return result;
}
@@ -1226,7 +1223,6 @@ void PolicyManagerImpl::CheckPendingPermissionsChanges(
}
void PolicyManagerImpl::NotifyPermissionsChanges(
- const std::string& device_id,
const std::string& policy_app_id,
const std::vector<FunctionalGroupPermission>& app_group_permissions) {
LOG4CXX_AUTO_TRACE(logger_);
@@ -1242,7 +1238,7 @@ void PolicyManagerImpl::NotifyPermissionsChanges(
PrepareNotificationData(
functional_groups, app_groups, app_group_permissions, notification_data);
- listener()->OnPermissionsUpdated(device_id, policy_app_id, notification_data);
+ listener()->OnPermissionsUpdated(policy_app_id, notification_data);
}
void PolicyManagerImpl::SetUserConsentForApp(
@@ -1281,15 +1277,14 @@ void PolicyManagerImpl::SetUserConsentForApp(
CheckPendingPermissionsChanges(verified_permissions.policy_app_id,
updated_app_group_permissons);
- NotifyPermissionsChanges(verified_permissions.device_id,
- verified_permissions.policy_app_id,
+ NotifyPermissionsChanges(verified_permissions.policy_app_id,
updated_app_group_permissons);
}
-bool PolicyManagerImpl::GetDefaultHmi(const std::string& device_id,
- const std::string& policy_app_id,
+bool PolicyManagerImpl::GetDefaultHmi(const std::string& policy_app_id,
std::string* default_hmi) const {
LOG4CXX_AUTO_TRACE(logger_);
+ const std::string device_id = GetCurrentDeviceId(policy_app_id);
DeviceConsent device_consent = GetUserConsentForDevice(device_id);
const std::string app_id = policy::kDeviceAllowed != device_consent
? kPreDataConsentId
@@ -1394,13 +1389,11 @@ void PolicyManagerImpl::GetPermissionsForApp(
}
bool allowed_by_default = false;
- const auto device_consent = GetUserConsentForDevice(device_id);
- if ((policy::kDeviceAllowed == device_consent) &&
- cache_->IsDefaultPolicy(policy_app_id)) {
+ if (cache_->IsDefaultPolicy(policy_app_id)) {
app_id_to_check = kDefaultId;
allowed_by_default = true;
} else if (cache_->IsPredataPolicy(policy_app_id) ||
- policy::kDeviceAllowed != device_consent) {
+ policy::kDeviceDisallowed == GetUserConsentForDevice(device_id)) {
app_id_to_check = kPreDataConsentId;
allowed_by_default = true;
}
@@ -1484,11 +1477,9 @@ void PolicyManagerImpl::GetPermissionsForApp(
}
std::string& PolicyManagerImpl::GetCurrentDeviceId(
- const transport_manager::DeviceHandle& device_handle,
const std::string& policy_app_id) const {
LOG4CXX_INFO(logger_, "GetDeviceInfo");
- last_device_id_ =
- listener()->OnCurrentDeviceIdUpdateRequired(device_handle, policy_app_id);
+ last_device_id_ = listener()->OnCurrentDeviceIdUpdateRequired(policy_app_id);
return last_device_id_;
}
@@ -1592,16 +1583,15 @@ void PolicyManagerImpl::UpdateAppConsentWithExternalConsent(
}
void PolicyManagerImpl::NotifySystem(
- const std::string& device_id,
const PolicyManagerImpl::AppPoliciesValueType& app_policy) const {
- listener()->OnPendingPermissionChange(device_id, app_policy.first);
+ listener()->OnPendingPermissionChange(app_policy.first);
}
void PolicyManagerImpl::SendPermissionsToApp(
- const std::string& device_id,
const PolicyManagerImpl::AppPoliciesValueType& app_policy) {
const std::string app_id = app_policy.first;
+ const std::string device_id = GetCurrentDeviceId(app_id);
if (device_id.empty()) {
LOG4CXX_WARN(logger_,
"Couldn't find device info for application id: " << app_id);
@@ -1624,7 +1614,6 @@ void PolicyManagerImpl::SendPermissionsToApp(
LOG4CXX_INFO(logger_, "Send notification for application_id: " << app_id);
listener()->OnPermissionsUpdated(
- device_id,
app_id,
notification_data,
policy_table::EnumToJsonString(app_policy.second.default_hmi));
@@ -1766,19 +1755,6 @@ void PolicyManagerImpl::KmsChanged(int kilometers) {
}
}
-const boost::optional<bool> PolicyManagerImpl::LockScreenDismissalEnabledState()
- const {
- LOG4CXX_AUTO_TRACE(logger_);
- return cache_->LockScreenDismissalEnabledState();
-}
-
-const boost::optional<std::string>
-PolicyManagerImpl::LockScreenDismissalWarningMessage(
- const std::string& language) const {
- LOG4CXX_AUTO_TRACE(logger_);
- return cache_->LockScreenDismissalWarningMessage(language);
-}
-
void PolicyManagerImpl::IncrementIgnitionCycles() {
cache_->IncrementIgnitionCycles();
}
@@ -1885,10 +1861,10 @@ bool PolicyManagerImpl::IsApplicationRevoked(const std::string& app_id) const {
return cache_->IsApplicationRevoked(app_id);
}
-bool PolicyManagerImpl::IsConsentNeeded(const std::string& device_id,
- const std::string& app_id) {
+bool PolicyManagerImpl::IsConsentNeeded(const std::string& app_id) {
LOG4CXX_AUTO_TRACE(logger_);
- const int count = cache_->CountUnconsentedGroups(app_id, device_id);
+ const std::string device_id = GetCurrentDeviceId(app_id);
+ int count = cache_->CountUnconsentedGroups(app_id, device_id);
LOG4CXX_DEBUG(logger_, "There are: " << count << " unconsented groups.");
return count != 0;
}
@@ -1898,7 +1874,7 @@ void PolicyManagerImpl::SetVINValue(const std::string& value) {
}
AppPermissions PolicyManagerImpl::GetAppPermissionsChanges(
- const std::string& device_id, const std::string& policy_app_id) {
+ const std::string& policy_app_id) {
PendingPermissions::iterator app_id_diff =
app_permissions_diff_.find(policy_app_id);
@@ -1907,8 +1883,7 @@ AppPermissions PolicyManagerImpl::GetAppPermissionsChanges(
if (app_permissions_diff_.end() != app_id_diff) {
permissions = app_id_diff->second;
} else {
- permissions.appPermissionsConsentNeeded =
- IsConsentNeeded(device_id, policy_app_id);
+ permissions.appPermissionsConsentNeeded = IsConsentNeeded(policy_app_id);
permissions.appRevoked = IsApplicationRevoked(policy_app_id);
GetPriority(permissions.application_id, &permissions.priority);
}
@@ -1937,9 +1912,9 @@ void PolicyManagerImpl::MarkUnpairedDevice(const std::string& device_id) {
}
void PolicyManagerImpl::OnAppRegisteredOnMobile(
- const std::string& device_id, const std::string& application_id) {
+ const std::string& application_id) {
StartPTExchange();
- SendNotificationOnPermissionsUpdated(device_id, application_id);
+ SendNotificationOnPermissionsUpdated(application_id);
}
void PolicyManagerImpl::OnDeviceSwitching(const std::string& device_id_from,
@@ -2028,23 +2003,20 @@ class CallStatusChange : public utils::Callable {
};
StatusNotifier PolicyManagerImpl::AddApplication(
- const std::string& device_id,
const std::string& application_id,
const rpc::policy_table_interface_base::AppHmiTypes& hmi_types) {
LOG4CXX_AUTO_TRACE(logger_);
- auto device_consent = GetUserConsentForDevice(device_id);
- LOG4CXX_DEBUG(logger_,
- "check_device_id: " << device_id << " check_device_consent: "
- << device_consent);
+ const std::string device_id = GetCurrentDeviceId(application_id);
+ DeviceConsent device_consent = GetUserConsentForDevice(device_id);
sync_primitives::AutoLock lock(apps_registration_lock_);
if (IsNewApplication(application_id)) {
LOG4CXX_DEBUG(logger_, "Adding new application");
- AddNewApplication(device_id, application_id, device_consent);
+ AddNewApplication(application_id, device_consent);
return std::make_shared<CallStatusChange>(update_status_manager_,
device_consent);
}
LOG4CXX_DEBUG(logger_, "Promote existed application");
- PromoteExistedApplication(device_id, application_id, device_consent);
+ PromoteExistedApplication(application_id, device_consent);
update_status_manager_.OnExistedApplicationAdded(cache_->UpdateRequired());
return std::make_shared<utils::CallNothing>();
}
@@ -2061,7 +2033,6 @@ bool PolicyManagerImpl::IsPredataPolicy(
}
void PolicyManagerImpl::ProcessExternalConsentStatusForApp(
- const std::string& device_id,
const std::string& application_id,
const ConsentProcessingPolicy processing_policy) {
ExternalConsentStatus status = cache_->GetExternalConsentStatus();
@@ -2073,7 +2044,7 @@ void PolicyManagerImpl::ProcessExternalConsentStatusForApp(
CalculateGroupsConsentFromExternalConsent(
groups_by_status, allowed_groups, disallowed_groups);
- LOG4CXX_DEBUG(logger_, "check device_id: " << device_id);
+ const std::string device_id = GetCurrentDeviceId(application_id);
UpdateAppConsentWithExternalConsent(device_id,
application_id,
allowed_groups,
@@ -2081,8 +2052,7 @@ void PolicyManagerImpl::ProcessExternalConsentStatusForApp(
processing_policy);
}
-void PolicyManagerImpl::AddNewApplication(const std::string& device_id,
- const std::string& application_id,
+void PolicyManagerImpl::AddNewApplication(const std::string& application_id,
DeviceConsent device_consent) {
LOG4CXX_AUTO_TRACE(logger_);
@@ -2102,31 +2072,19 @@ void PolicyManagerImpl::AddNewApplication(const std::string& device_id,
}
ProcessExternalConsentStatusForApp(
- device_id,
- application_id,
- ConsentProcessingPolicy::kExternalConsentBased);
+ application_id, ConsentProcessingPolicy::kExternalConsentBased);
}
void PolicyManagerImpl::PromoteExistedApplication(
- const std::string& device_id,
- const std::string& application_id,
- DeviceConsent device_consent) {
+ const std::string& application_id, DeviceConsent device_consent) {
// If device consent changed to allowed during application being
// disconnected, app permissions should be changed also
- LOG4CXX_DEBUG(logger_,
- "kDeviceAllowed == device_consent: "
- << (kDeviceAllowed == device_consent)
- << " device_consent: " << device_consent);
if (kDeviceAllowed == device_consent &&
cache_->IsPredataPolicy(application_id)) {
- LOG4CXX_INFO(logger_,
- "Setting "
- << policy::kDefaultId
- << " permissions for application id: " << application_id);
cache_->SetDefaultPolicy(application_id);
}
- ProcessExternalConsentStatusForApp(
- device_id, application_id, ConsentProcessingPolicy::kTimestampBased);
+ ProcessExternalConsentStatusForApp(application_id,
+ ConsentProcessingPolicy::kTimestampBased);
}
bool PolicyManagerImpl::IsNewApplication(
@@ -2206,12 +2164,10 @@ std::ostream& operator<<(std::ostream& output,
return output;
}
-void PolicyManagerImpl::SetDefaultHmiTypes(
- const transport_manager::DeviceHandle& device_handle,
- const std::string& application_id,
- const std::vector<int>& hmi_types) {
+void PolicyManagerImpl::SetDefaultHmiTypes(const std::string& application_id,
+ const std::vector<int>& hmi_types) {
LOG4CXX_INFO(logger_, "SetDefaultHmiTypes");
- const auto device_id = GetCurrentDeviceId(device_handle, application_id);
+ const std::string device_id = GetCurrentDeviceId(application_id);
ApplicationOnDevice who = {device_id, application_id};
access_remote_->SetDefaultHmiTypes(who, hmi_types);
}
@@ -2249,7 +2205,7 @@ bool PolicyManagerImpl::CheckModule(const PTString& app_id,
void PolicyManagerImpl::SendHMILevelChanged(const ApplicationOnDevice& who) {
std::string default_hmi("NONE");
- if (GetDefaultHmi(who.dev_id, who.app_id, &default_hmi)) {
+ if (GetDefaultHmi(who.app_id, &default_hmi)) {
listener()->OnUpdateHMIStatus(who.dev_id, who.app_id, default_hmi);
} else {
LOG4CXX_WARN(
@@ -2286,8 +2242,7 @@ void PolicyManagerImpl::SendAppPermissionsChanged(
const std::string& device_id, const std::string& application_id) {
Permissions notification_data;
GetPermissions(device_id, application_id, &notification_data);
- listener()->OnPermissionsUpdated(
- device_id, application_id, notification_data);
+ listener()->OnPermissionsUpdated(application_id, notification_data);
}
void PolicyManagerImpl::SendAuthTokenUpdated(const std::string policy_app_id) {