diff options
author | jacobkeeler <jacob.keeler@livioradio.com> | 2018-10-02 18:43:10 -0400 |
---|---|---|
committer | jacobkeeler <jacob.keeler@livioradio.com> | 2018-10-02 18:43:10 -0400 |
commit | 7ed7e819828a1957b0f4b27e4f13ff99ed81c230 (patch) | |
tree | 0f862ecff0225af37c57919bdb1d41abcf09cbd6 | |
parent | 6912633eda53949395f8825dc0abdb2d03a2dbdf (diff) | |
download | sdl_core-7ed7e819828a1957b0f4b27e4f13ff99ed81c230.tar.gz |
Fix issue where pending permissions were not being cleared
-rw-r--r-- | src/components/application_manager/src/policies/policy_handler.cc | 10 | ||||
-rw-r--r-- | src/components/policy/policy_external/src/policy_helper.cc | 5 |
2 files changed, 6 insertions, 9 deletions
diff --git a/src/components/application_manager/src/policies/policy_handler.cc b/src/components/application_manager/src/policies/policy_handler.cc index cbc434a485..1b64c5d7b4 100644 --- a/src/components/application_manager/src/policies/policy_handler.cc +++ b/src/components/application_manager/src/policies/policy_handler.cc @@ -951,6 +951,7 @@ void PolicyHandler::OnVehicleDataUpdated( void PolicyHandler::OnPendingPermissionChange( const std::string& policy_app_id) { + LOG4CXX_AUTO_TRACE(logger_); LOG4CXX_DEBUG(logger_, "PolicyHandler::OnPendingPermissionChange for " << policy_app_id); @@ -989,8 +990,6 @@ void PolicyHandler::OnPendingPermissionChange( if (permissions.appPermissionsConsentNeeded) { MessageHelper::SendOnAppPermissionsChangedNotification( app->app_id(), permissions, application_manager_); - - policy_manager_->RemovePendingPermissionChanges(policy_app_id); // "Break" statement has to be here to continue processing in case of // there is another "true" flag in permissions struct break; @@ -1000,8 +999,6 @@ void PolicyHandler::OnPendingPermissionChange( if (permissions.isAppPermissionsRevoked) { MessageHelper::SendOnAppPermissionsChangedNotification( app->app_id(), permissions, application_manager_); - - policy_manager_->RemovePendingPermissionChanges(policy_app_id); } break; } @@ -1022,15 +1019,14 @@ void PolicyHandler::OnPendingPermissionChange( commands::Command::SOURCE_SDL); application_manager_.OnAppUnauthorized(app->app_id()); - - policy_manager_->RemovePendingPermissionChanges(policy_app_id); } if (permissions.requestTypeChanged || permissions.requestSubTypeChanged) { MessageHelper::SendOnAppPermissionsChangedNotification( app->app_id(), permissions, application_manager_); - policy_manager_->RemovePendingPermissionChanges(policy_app_id); } + + policy_manager_->RemovePendingPermissionChanges(policy_app_id); } bool PolicyHandler::SendMessageToSDK(const BinaryMessage& pt_string, diff --git a/src/components/policy/policy_external/src/policy_helper.cc b/src/components/policy/policy_external/src/policy_helper.cc index 3beeabce1e..4d4b62470c 100644 --- a/src/components/policy/policy_external/src/policy_helper.cc +++ b/src/components/policy/policy_external/src/policy_helper.cc @@ -302,7 +302,9 @@ void CheckAppPolicy::AddResult(const std::string& app_id, void CheckAppPolicy::InsertPermission(const std::string& app_id, const AppPermissions& permissions_diff) { pm_->app_permissions_diff_lock_.Acquire(); - pm_->app_permissions_diff_.insert(std::make_pair(app_id, permissions_diff)); + if (!pm_->app_permissions_diff_.insert(std::make_pair(app_id, permissions_diff)).second) { + LOG4CXX_ERROR(logger_, "App ID: " << app_id << " already exists in map."); + } pm_->app_permissions_diff_lock_.Release(); } @@ -356,7 +358,6 @@ bool CheckAppPolicy::operator()(const AppPoliciesValueType& app_policy) { "Permissions for application:" << app_id << " wasn't changed."); AddResult(app_id, result); - InsertPermission(app_id, permissions_diff); return true; } |