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.cc50
1 files changed, 22 insertions, 28 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 d50779383a..2cd0d2b23b 100644
--- a/src/components/policy/policy_external/src/policy_manager_impl.cc
+++ b/src/components/policy/policy_external/src/policy_manager_impl.cc
@@ -588,13 +588,8 @@ void PolicyManagerImpl::CheckPermissions(const PTString& app_id,
policy_table::FunctionalGroupings functional_groupings;
cache_->GetFunctionalGroupings(functional_groupings);
-#ifdef SDL_REMOTE_CONTROL
- ApplicationOnDevice who = {device_id, app_id};
- const policy_table::Strings app_groups = access_remote_->GetGroups(who);
-#else // SDL_REMOTE_CONTROL
- const policy_table::Strings app_groups =
+ policy_table::Strings app_groups =
GetGroupsNames(app_group_permissions);
-#endif // SDL_REMOTE_CONTROL
// Undefined groups (without user consent) disallowed by default, since
// OnPermissionsChange notification has no "undefined" section
@@ -614,8 +609,20 @@ void PolicyManagerImpl::CheckPermissions(const PTString& app_id,
<< " returns true");
}
+ if (cache_->IsApplicationRevoked(app_id)) {
+ // SDL must be able to notify mobile side with its status after app has
+ // been revoked by backend
+ if ("OnHMIStatus" == rpc && "NONE" == hmi_level) {
+ result.hmi_level_permitted = kRpcAllowed;
+ } else {
+ result.hmi_level_permitted = kRpcDisallowed;
+ }
+ return;
+ }
+
const bool known_rpc = rpc_permissions.end() != rpc_permissions.find(rpc);
- LOG4CXX_INFO(logger_, "Is known rpc " << known_rpc);
+ LOG4CXX_DEBUG(logger_, "Is known rpc " <<
+ (known_rpc ? "true" : "false") );
if (!known_rpc) {
// RPC not found in list == disallowed by backend
result.hmi_level_permitted = kRpcDisallowed;
@@ -637,6 +644,7 @@ void PolicyManagerImpl::CheckPermissions(const PTString& app_id,
rpc_permissions[rpc].hmi_permissions[kUserDisallowedKey].find(
hmi_level)) {
// RPC found in allowed == allowed by backend, but disallowed by user
+ LOG4CXX_DEBUG(logger_, "RPC found in allowed == allowed by backend, but disallowed by user");
result.hmi_level_permitted = kRpcUserDisallowed;
} else {
LOG4CXX_DEBUG(logger_,
@@ -715,17 +723,6 @@ void PolicyManagerImpl::CheckPermissions(const PTString& app_id,
LOG4CXX_DEBUG(logger_, "There are no parameters allowed.");
result.hmi_level_permitted = kRpcDisallowed;
}
-
- if (cache_->IsApplicationRevoked(app_id)) {
- // SDL must be able to notify mobile side with its status after app has
- // been revoked by backend
- if ("OnHMIStatus" == rpc && "NONE" == hmi_level) {
- result.hmi_level_permitted = kRpcAllowed;
- } else {
- result.hmi_level_permitted = kRpcDisallowed;
- }
- return;
- }
}
bool PolicyManagerImpl::ResetUserConsent() {
@@ -967,6 +964,7 @@ void PolicyManagerImpl::CheckPendingPermissionsChanges(
void PolicyManagerImpl::NotifyPermissionsChanges(
const std::string& policy_app_id,
const std::vector<FunctionalGroupPermission>& app_group_permissions) {
+ LOG4CXX_AUTO_TRACE(logger_);
// Get current functional groups from DB with RPC permissions
policy_table::FunctionalGroupings functional_groups;
cache_->GetFunctionalGroupings(functional_groups);
@@ -986,10 +984,6 @@ void PolicyManagerImpl::SetUserConsentForApp(
const PermissionConsent& permissions, const NotificationMode mode) {
LOG4CXX_AUTO_TRACE(logger_);
- if (permissions.group_permissions.empty()) {
- LOG4CXX_DEBUG(logger_, "Permissions list is empty, skipping update.");
- return;
- }
cache_->ResetCalculatedPermissions();
PermissionConsent verified_permissions =
@@ -1157,14 +1151,8 @@ void PolicyManagerImpl::GetPermissionsForApp(
FunctionalIdType group_types;
-#ifdef SDL_REMOTE_CONTROL
- allowed_by_default = false;
- const bool ret = access_remote_->GetPermissionsForApp(
- device_id, app_id_to_check, group_types);
-#else
const bool ret =
cache_->GetPermissionsForApp(device_id, app_id_to_check, group_types);
-#endif // REMOTE_CONTROL
if (!ret) {
LOG4CXX_WARN(logger_,
@@ -1681,6 +1669,12 @@ void PolicyManagerImpl::OnAppRegisteredOnMobile(
SendNotificationOnPermissionsUpdated(application_id);
}
+void PolicyManagerImpl::OnDeviceSwitching(const std::string& device_id_from,
+ const std::string& device_id_to) {
+ LOG4CXX_AUTO_TRACE(logger_);
+ cache_->OnDeviceSwitching(device_id_from, device_id_to);
+}
+
const MetaInfo PolicyManagerImpl::GetMetaInfo() const {
LOG4CXX_AUTO_TRACE(logger_);
return cache_->GetMetaInfo();