diff options
author | Andrey Oleynik <my@email.com> | 2015-04-19 21:10:27 +0300 |
---|---|---|
committer | Andrey Oleynik <my@email.com> | 2015-04-23 16:35:14 +0300 |
commit | a896c4d37609e49b2ed47d41c9821f7dd30a4d1f (patch) | |
tree | 71b4398c32020ff9a4efdd6eb59a12033d236373 | |
parent | 21999852e8e9e8bc46f1681cac6384d0160254d8 (diff) | |
download | sdl_core-a896c4d37609e49b2ed47d41c9821f7dd30a4d1f.tar.gz |
APPLINK-12665, APPLINK-12666. Fixed revoked groups list sending.
-rw-r--r-- | src/components/application_manager/src/policies/policy_handler.cc | 4 | ||||
-rw-r--r-- | src/components/policy/src/policy/src/policy_helper.cc | 14 |
2 files changed, 15 insertions, 3 deletions
diff --git a/src/components/application_manager/src/policies/policy_handler.cc b/src/components/application_manager/src/policies/policy_handler.cc index d3d13f0af4..bfef1c8f77 100644 --- a/src/components/application_manager/src/policies/policy_handler.cc +++ b/src/components/application_manager/src/policies/policy_handler.cc @@ -685,8 +685,10 @@ void PolicyHandler::OnPendingPermissionChange( SendOnAppPermissionsChangedNotification(app->app_id(), permissions); 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; } - break; } case mobile_apis::HMILevel::eType::HMI_BACKGROUND: { if (permissions.isAppPermissionsRevoked) { diff --git a/src/components/policy/src/policy/src/policy_helper.cc b/src/components/policy/src/policy/src/policy_helper.cc index 2677e5789c..700e905fa2 100644 --- a/src/components/policy/src/policy/src/policy_helper.cc +++ b/src/components/policy/src/policy/src/policy_helper.cc @@ -76,8 +76,8 @@ bool operator()(const policy::StringsValueType& value) { checker); if (groups_attributes_.end() == it) { return false; - } - FunctionalGroupPermission group; + } + FunctionalGroupPermission group; group.group_alias = it->second.first; group.group_id = it->first; groups_permissions_.push_back(group); @@ -152,6 +152,16 @@ bool policy::CheckAppPolicy::HasRevokedGroups( it_groups_new, it_groups_new_end, std::back_inserter(revoked_group_list), Compare); + // Remove groups which are not required user consent + for (policy_table::Strings::iterator it_revoked = revoked_group_list.begin(); + revoked_group_list.end() != it_revoked; ) { + if (!IsConsentRequired(app_policy.first, std::string(*it_revoked))) { + revoked_group_list.erase(it_revoked); + } else { + ++it_revoked; + } + } + if (revoked_groups) { *revoked_groups = revoked_group_list; } |