configuration_policy_handler_chromeos.h revision 9ab5563a3196760eb381d102cbb2bc0f7abc6a50
14b6829f0d28990dd645e16386eb226d0f10c8731shiqian// Copyright (c) 2012 The Chromium Authors. All rights reserved. 24b6829f0d28990dd645e16386eb226d0f10c8731shiqian// Use of this source code is governed by a BSD-style license that can be 34b6829f0d28990dd645e16386eb226d0f10c8731shiqian// found in the LICENSE file. 44b6829f0d28990dd645e16386eb226d0f10c8731shiqian 54b6829f0d28990dd645e16386eb226d0f10c8731shiqian#ifndef CHROME_BROWSER_CHROMEOS_POLICY_CONFIGURATION_POLICY_HANDLER_CHROMEOS_H_ 64b6829f0d28990dd645e16386eb226d0f10c8731shiqian#define CHROME_BROWSER_CHROMEOS_POLICY_CONFIGURATION_POLICY_HANDLER_CHROMEOS_H_ 74b6829f0d28990dd645e16386eb226d0f10c8731shiqian 84b6829f0d28990dd645e16386eb226d0f10c8731shiqian#include "chrome/browser/policy/configuration_policy_handler.h" 94b6829f0d28990dd645e16386eb226d0f10c8731shiqian#include "chromeos/network/network_ui_data.h" 104b6829f0d28990dd645e16386eb226d0f10c8731shiqian#include "chromeos/network/onc/onc_constants.h" 114b6829f0d28990dd645e16386eb226d0f10c8731shiqian 124b6829f0d28990dd645e16386eb226d0f10c8731shiqiannamespace base { 134b6829f0d28990dd645e16386eb226d0f10c8731shiqianclass DictionaryValue; 144b6829f0d28990dd645e16386eb226d0f10c8731shiqianclass Value; 154b6829f0d28990dd645e16386eb226d0f10c8731shiqian} 164b6829f0d28990dd645e16386eb226d0f10c8731shiqian 174b6829f0d28990dd645e16386eb226d0f10c8731shiqiannamespace policy { 184b6829f0d28990dd645e16386eb226d0f10c8731shiqian 194b6829f0d28990dd645e16386eb226d0f10c8731shiqian// ConfigurationPolicyHandler for validation of the network configuration 204b6829f0d28990dd645e16386eb226d0f10c8731shiqian// policies. These actually don't set any preferences, but the handler just 214b6829f0d28990dd645e16386eb226d0f10c8731shiqian// generates error messages. 224b6829f0d28990dd645e16386eb226d0f10c8731shiqianclass NetworkConfigurationPolicyHandler : public TypeCheckingPolicyHandler { 234b6829f0d28990dd645e16386eb226d0f10c8731shiqian public: 244b6829f0d28990dd645e16386eb226d0f10c8731shiqian static NetworkConfigurationPolicyHandler* CreateForUserPolicy(); 254b6829f0d28990dd645e16386eb226d0f10c8731shiqian static NetworkConfigurationPolicyHandler* CreateForDevicePolicy(); 264b6829f0d28990dd645e16386eb226d0f10c8731shiqian 274b6829f0d28990dd645e16386eb226d0f10c8731shiqian virtual ~NetworkConfigurationPolicyHandler(); 284b6829f0d28990dd645e16386eb226d0f10c8731shiqian 294b6829f0d28990dd645e16386eb226d0f10c8731shiqian // ConfigurationPolicyHandler methods: 304b6829f0d28990dd645e16386eb226d0f10c8731shiqian virtual bool CheckPolicySettings(const PolicyMap& policies, 314b6829f0d28990dd645e16386eb226d0f10c8731shiqian PolicyErrorMap* errors) OVERRIDE; 324b6829f0d28990dd645e16386eb226d0f10c8731shiqian virtual void ApplyPolicySettings(const PolicyMap& policies, 334b6829f0d28990dd645e16386eb226d0f10c8731shiqian PrefValueMap* prefs) OVERRIDE; 344b6829f0d28990dd645e16386eb226d0f10c8731shiqian virtual void PrepareForDisplaying(PolicyMap* policies) const OVERRIDE; 354b6829f0d28990dd645e16386eb226d0f10c8731shiqian 364b6829f0d28990dd645e16386eb226d0f10c8731shiqian private: 374b6829f0d28990dd645e16386eb226d0f10c8731shiqian explicit NetworkConfigurationPolicyHandler( 384b6829f0d28990dd645e16386eb226d0f10c8731shiqian const char* policy_name, 394b6829f0d28990dd645e16386eb226d0f10c8731shiqian chromeos::onc::ONCSource onc_source); 404b6829f0d28990dd645e16386eb226d0f10c8731shiqian 414b6829f0d28990dd645e16386eb226d0f10c8731shiqian // Takes network policy in Value representation and produces an output Value 424b6829f0d28990dd645e16386eb226d0f10c8731shiqian // that contains a pretty-printed and sanitized version. In particular, we 434b6829f0d28990dd645e16386eb226d0f10c8731shiqian // remove any Passphrases that may be contained in the JSON. Ownership of the 444b6829f0d28990dd645e16386eb226d0f10c8731shiqian // return value is transferred to the caller. 454b6829f0d28990dd645e16386eb226d0f10c8731shiqian static base::Value* SanitizeNetworkConfig(const base::Value* config); 464b6829f0d28990dd645e16386eb226d0f10c8731shiqian 474b6829f0d28990dd645e16386eb226d0f10c8731shiqian // The kind of ONC source that this handler represents. ONCSource 484b6829f0d28990dd645e16386eb226d0f10c8731shiqian // distinguishes between user and device policy. 494b6829f0d28990dd645e16386eb226d0f10c8731shiqian const chromeos::onc::ONCSource onc_source_; 504b6829f0d28990dd645e16386eb226d0f10c8731shiqian 514b6829f0d28990dd645e16386eb226d0f10c8731shiqian DISALLOW_COPY_AND_ASSIGN(NetworkConfigurationPolicyHandler); 524b6829f0d28990dd645e16386eb226d0f10c8731shiqian}; 534b6829f0d28990dd645e16386eb226d0f10c8731shiqian 54efa2fc7fd8a71afd54841b780829ce57cc487938zhanyong.wan// Maps the PinnedLauncherApps policy to the corresponding pref. 554b6829f0d28990dd645e16386eb226d0f10c8731shiqianclass PinnedLauncherAppsPolicyHandler : public ExtensionListPolicyHandler { 564b6829f0d28990dd645e16386eb226d0f10c8731shiqian public: 57e8ff148b4309e115da1c55089dc3b9a241a928dcshiqian PinnedLauncherAppsPolicyHandler(); 584b6829f0d28990dd645e16386eb226d0f10c8731shiqian virtual ~PinnedLauncherAppsPolicyHandler(); 594b6829f0d28990dd645e16386eb226d0f10c8731shiqian 604b6829f0d28990dd645e16386eb226d0f10c8731shiqian // ExtensionListPolicyHandler methods: 614b6829f0d28990dd645e16386eb226d0f10c8731shiqian virtual void ApplyPolicySettings(const PolicyMap& policies, 62f904a612d9444ab36c07a8e619c113432e046f49vladlosev PrefValueMap* prefs) OVERRIDE; 634b6829f0d28990dd645e16386eb226d0f10c8731shiqian 64e44602ec83c65102035ce5304ae8de0cb16e9e56shiqian private: 65e8ff148b4309e115da1c55089dc3b9a241a928dcshiqian DISALLOW_COPY_AND_ASSIGN(PinnedLauncherAppsPolicyHandler); 664b6829f0d28990dd645e16386eb226d0f10c8731shiqian}; 674b6829f0d28990dd645e16386eb226d0f10c8731shiqian 684b6829f0d28990dd645e16386eb226d0f10c8731shiqianclass ScreenMagnifierPolicyHandler : public IntRangePolicyHandlerBase { 694b6829f0d28990dd645e16386eb226d0f10c8731shiqian public: 704b6829f0d28990dd645e16386eb226d0f10c8731shiqian ScreenMagnifierPolicyHandler(); 714b6829f0d28990dd645e16386eb226d0f10c8731shiqian virtual ~ScreenMagnifierPolicyHandler(); 724b6829f0d28990dd645e16386eb226d0f10c8731shiqian 734b6829f0d28990dd645e16386eb226d0f10c8731shiqian // IntRangePolicyHandlerBase: 744b6829f0d28990dd645e16386eb226d0f10c8731shiqian virtual void ApplyPolicySettings(const PolicyMap& policies, 754b6829f0d28990dd645e16386eb226d0f10c8731shiqian PrefValueMap* prefs) OVERRIDE; 764b6829f0d28990dd645e16386eb226d0f10c8731shiqian 774b6829f0d28990dd645e16386eb226d0f10c8731shiqian private: 784b6829f0d28990dd645e16386eb226d0f10c8731shiqian DISALLOW_COPY_AND_ASSIGN(ScreenMagnifierPolicyHandler); 794b6829f0d28990dd645e16386eb226d0f10c8731shiqian}; 804b6829f0d28990dd645e16386eb226d0f10c8731shiqian 814b6829f0d28990dd645e16386eb226d0f10c8731shiqian// ConfigurationPolicyHandler for login screen power management settings. This 824b6829f0d28990dd645e16386eb226d0f10c8731shiqian// does not actually set any prefs, it just checks whether the settings are 834b6829f0d28990dd645e16386eb226d0f10c8731shiqian// valid and generates errors if appropriate. 844b6829f0d28990dd645e16386eb226d0f10c8731shiqianclass LoginScreenPowerManagementPolicyHandler 854b6829f0d28990dd645e16386eb226d0f10c8731shiqian : public TypeCheckingPolicyHandler { 864b6829f0d28990dd645e16386eb226d0f10c8731shiqian public: 874b6829f0d28990dd645e16386eb226d0f10c8731shiqian LoginScreenPowerManagementPolicyHandler(); 884b6829f0d28990dd645e16386eb226d0f10c8731shiqian virtual ~LoginScreenPowerManagementPolicyHandler(); 890ebc16a68eea644a9f8a718fbdef95112a4a0ff2zhanyong.wan 904b6829f0d28990dd645e16386eb226d0f10c8731shiqian // TypeCheckingPolicyHandler: 910ebc16a68eea644a9f8a718fbdef95112a4a0ff2zhanyong.wan virtual bool CheckPolicySettings(const PolicyMap& policies, 920ebc16a68eea644a9f8a718fbdef95112a4a0ff2zhanyong.wan PolicyErrorMap* errors) OVERRIDE; 930ebc16a68eea644a9f8a718fbdef95112a4a0ff2zhanyong.wan virtual void ApplyPolicySettings(const PolicyMap& policies, 940ebc16a68eea644a9f8a718fbdef95112a4a0ff2zhanyong.wan PrefValueMap* prefs) OVERRIDE; 950ebc16a68eea644a9f8a718fbdef95112a4a0ff2zhanyong.wan 960ebc16a68eea644a9f8a718fbdef95112a4a0ff2zhanyong.wan private: 97b0fe69fcbfaa44ae05f6f2429d9c4bbb326b5ea5zhanyong.wan DISALLOW_COPY_AND_ASSIGN(LoginScreenPowerManagementPolicyHandler); 98b0fe69fcbfaa44ae05f6f2429d9c4bbb326b5ea5zhanyong.wan}; 990ebc16a68eea644a9f8a718fbdef95112a4a0ff2zhanyong.wan 1000ebc16a68eea644a9f8a718fbdef95112a4a0ff2zhanyong.wan} // namespace policy 101b0fe69fcbfaa44ae05f6f2429d9c4bbb326b5ea5zhanyong.wan 102b0fe69fcbfaa44ae05f6f2429d9c4bbb326b5ea5zhanyong.wan#endif // CHROME_BROWSER_CHROMEOS_POLICY_CONFIGURATION_POLICY_HANDLER_CHROMEOS_H_ 1030ebc16a68eea644a9f8a718fbdef95112a4a0ff2zhanyong.wan