OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef COMPONENTS_POLICY_CORE_BROWSER_CONFIGURATION_POLICY_HANDLER_H_ | 5 #ifndef COMPONENTS_POLICY_CORE_BROWSER_CONFIGURATION_POLICY_HANDLER_H_ |
6 #define COMPONENTS_POLICY_CORE_BROWSER_CONFIGURATION_POLICY_HANDLER_H_ | 6 #define COMPONENTS_POLICY_CORE_BROWSER_CONFIGURATION_POLICY_HANDLER_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
266 scoped_ptr<base::Value>* output); | 266 scoped_ptr<base::Value>* output); |
267 | 267 |
268 private: | 268 private: |
269 const char* policy_name_; | 269 const char* policy_name_; |
270 Schema schema_; | 270 Schema schema_; |
271 SchemaOnErrorStrategy strategy_; | 271 SchemaOnErrorStrategy strategy_; |
272 | 272 |
273 DISALLOW_COPY_AND_ASSIGN(SchemaValidatingPolicyHandler); | 273 DISALLOW_COPY_AND_ASSIGN(SchemaValidatingPolicyHandler); |
274 }; | 274 }; |
275 | 275 |
| 276 // Maps policy to pref like SimplePolicyHandler while ensuring that the value |
| 277 // set matches the schema. |schema| is the schema used for policies, and |
| 278 // |strategy| is the strategy used for schema validation errors. The |
| 279 // |recommended_permission| and |mandatory_permission| flags indicate the levels |
| 280 // at which the policy can be set. A value set at an unsupported level will be |
| 281 // ignored. |
| 282 class POLICY_EXPORT SimpleSchemaValidatingPolicyHandler |
| 283 : public SchemaValidatingPolicyHandler { |
| 284 public: |
| 285 enum MandatoryPermission { MANDATORY_ALLOWED, MANDATORY_PROHIBITED }; |
| 286 enum RecommendedPermission { RECOMMENDED_ALLOWED, RECOMMENDED_PROHIBITED }; |
| 287 |
| 288 SimpleSchemaValidatingPolicyHandler( |
| 289 const char* policy_name, |
| 290 const char* pref_path, |
| 291 Schema schema, |
| 292 SchemaOnErrorStrategy strategy, |
| 293 RecommendedPermission recommended_permission, |
| 294 MandatoryPermission mandatory_permission); |
| 295 virtual ~SimpleSchemaValidatingPolicyHandler(); |
| 296 |
| 297 // ConfigurationPolicyHandler: |
| 298 virtual bool CheckPolicySettings(const PolicyMap& policies, |
| 299 PolicyErrorMap* errors) OVERRIDE; |
| 300 virtual void ApplyPolicySettings(const PolicyMap& policies, |
| 301 PrefValueMap* prefs) OVERRIDE; |
| 302 |
| 303 private: |
| 304 const char* pref_path_; |
| 305 const bool allow_recommended_; |
| 306 const bool allow_mandatory_; |
| 307 |
| 308 DISALLOW_COPY_AND_ASSIGN(SimpleSchemaValidatingPolicyHandler); |
| 309 }; |
| 310 |
276 // A policy handler to deprecate multiple legacy policies with a new one. | 311 // A policy handler to deprecate multiple legacy policies with a new one. |
277 // This handler will completely ignore any of legacy policy values if the new | 312 // This handler will completely ignore any of legacy policy values if the new |
278 // one is set. | 313 // one is set. |
279 class POLICY_EXPORT LegacyPoliciesDeprecatingPolicyHandler | 314 class POLICY_EXPORT LegacyPoliciesDeprecatingPolicyHandler |
280 : public ConfigurationPolicyHandler { | 315 : public ConfigurationPolicyHandler { |
281 public: | 316 public: |
282 LegacyPoliciesDeprecatingPolicyHandler( | 317 LegacyPoliciesDeprecatingPolicyHandler( |
283 ScopedVector<ConfigurationPolicyHandler> legacy_policy_handlers, | 318 ScopedVector<ConfigurationPolicyHandler> legacy_policy_handlers, |
284 scoped_ptr<SchemaValidatingPolicyHandler> new_policy_handler); | 319 scoped_ptr<SchemaValidatingPolicyHandler> new_policy_handler); |
285 virtual ~LegacyPoliciesDeprecatingPolicyHandler(); | 320 virtual ~LegacyPoliciesDeprecatingPolicyHandler(); |
286 | 321 |
287 // ConfigurationPolicyHandler: | 322 // ConfigurationPolicyHandler: |
288 virtual bool CheckPolicySettings(const PolicyMap& policies, | 323 virtual bool CheckPolicySettings(const PolicyMap& policies, |
289 PolicyErrorMap* errors) OVERRIDE; | 324 PolicyErrorMap* errors) OVERRIDE; |
290 virtual void ApplyPolicySettings(const PolicyMap& policies, | 325 virtual void ApplyPolicySettings(const PolicyMap& policies, |
291 PrefValueMap* prefs) OVERRIDE; | 326 PrefValueMap* prefs) OVERRIDE; |
292 | 327 |
293 private: | 328 private: |
294 ScopedVector<ConfigurationPolicyHandler> legacy_policy_handlers_; | 329 ScopedVector<ConfigurationPolicyHandler> legacy_policy_handlers_; |
295 scoped_ptr<SchemaValidatingPolicyHandler> new_policy_handler_; | 330 scoped_ptr<SchemaValidatingPolicyHandler> new_policy_handler_; |
296 | 331 |
297 DISALLOW_COPY_AND_ASSIGN(LegacyPoliciesDeprecatingPolicyHandler); | 332 DISALLOW_COPY_AND_ASSIGN(LegacyPoliciesDeprecatingPolicyHandler); |
298 }; | 333 }; |
299 | 334 |
300 } // namespace policy | 335 } // namespace policy |
301 | 336 |
302 #endif // COMPONENTS_POLICY_CORE_BROWSER_CONFIGURATION_POLICY_HANDLER_H_ | 337 #endif // COMPONENTS_POLICY_CORE_BROWSER_CONFIGURATION_POLICY_HANDLER_H_ |
OLD | NEW |