diff options
Diffstat (limited to 'src/components/policy/src/policy/include/policy/policy_helper.h')
-rw-r--r-- | src/components/policy/src/policy/include/policy/policy_helper.h | 45 |
1 files changed, 35 insertions, 10 deletions
diff --git a/src/components/policy/src/policy/include/policy/policy_helper.h b/src/components/policy/src/policy/include/policy/policy_helper.h index 5d5c8e7ed..c3fcce6b2 100644 --- a/src/components/policy/src/policy/include/policy/policy_helper.h +++ b/src/components/policy/src/policy/include/policy/policy_helper.h @@ -83,23 +83,48 @@ struct CheckAppPolicy { CheckAppPolicy(PolicyManagerImpl* pm, const utils::SharedPtr<policy_table::Table> update, const utils::SharedPtr<policy_table::Table> snapshot); - bool HasSameGroups(const AppPoliciesValueType& app_policy, - AppPermissions* perms) const; - bool IsNewAppication(const std::string& application_id) const; - void SendNotification(const AppPoliciesValueType& app_policy) const; - void SendOnPendingPermissions(const AppPoliciesValueType& app_policy, - AppPermissions permissions) const; - bool IsAppRevoked(const AppPoliciesValueType& app_policy) const; - bool NicknamesMatch(const std::string app_id, - const AppPoliciesValueType& app_policy) const; bool operator()(const AppPoliciesValueType& app_policy); private: + enum PermissionsCheckResult { + RESULT_NO_CHANGES, + RESULT_APP_REVOKED, + RESULT_NICKNAME_MISMATCH, + RESULT_PERMISSIONS_REVOKED, + RESULT_CONSENT_NEEDED, + RESULT_CONSENT_NOT_REQIURED, + RESULT_PERMISSIONS_REVOKED_AND_CONSENT_NEEDED, + RESULT_REQUEST_TYPE_CHANGED + }; + + void SetPendingPermissions(const AppPoliciesValueType& app_policy, + PermissionsCheckResult result) const; + PermissionsCheckResult CheckPermissionsChanges( + const AppPoliciesValueType &app_policy) const; + bool HasRevokedGroups(const AppPoliciesValueType& app_policy, + policy_table::Strings* revoked_groups = NULL) const; + bool HasNewGroups(const AppPoliciesValueType& app_policy, + policy_table::Strings* new_groups = NULL) const; + bool HasConsentNeededGroups(const AppPoliciesValueType& app_policy) const; + std::vector<FunctionalGroupPermission> GetRevokedGroups( + const AppPoliciesValueType& app_policy) const; + void RemoveRevokedConsents( + const AppPoliciesValueType& app_policy, + const std::vector<FunctionalGroupPermission>& revoked_groups) const; + bool IsKnownAppication(const std::string& application_id) const; + void NotifySystem(const AppPoliciesValueType& app_policy) const; + void SendPermissionsToApp(const AppPoliciesValueType& app_policy) const; + bool IsAppRevoked(const AppPoliciesValueType& app_policy) const; + bool NicknamesMatch(const AppPoliciesValueType& app_policy) const; /** * @brief Allows to check if appropriate group requires any consent. * @param group_name the group for which consent will be checked. * @return true if consent is required, false otherwise. */ - bool IsConsentRequired(const std::string& group_name) const; + bool IsConsentRequired(const std::string& app_id, + const std::string& group_name) const; + bool IsRequestTypeChanged(const AppPoliciesValueType& app_policy) const; + + private: PolicyManagerImpl* pm_; const utils::SharedPtr<policy_table::Table> update_; const utils::SharedPtr<policy_table::Table> snapshot_; |