Commit f61238d4 authored by mnissler@chromium.org's avatar mnissler@chromium.org

Make device-level proxy policy mandatory in KIOSK mode.

BUG=none
TEST=On KIOSK Chrome OS device, check that device-level proxy is mandatory.


Review URL: http://codereview.chromium.org/10097007

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@132450 0039d316-1c4b-4281-b951-d872f2087c98
parent 884033e6
...@@ -347,6 +347,17 @@ void DevicePolicyCache::CheckFetchingDone() { ...@@ -347,6 +347,17 @@ void DevicePolicyCache::CheckFetchingDone() {
} }
} }
void DevicePolicyCache::DecodeDevicePolicy(
const em::ChromeDeviceSettingsProto& policy,
PolicyMap* policies) {
// Decode the various groups of policies.
DecodeLoginPolicies(policy, policies);
DecodeKioskPolicies(policy, policies);
DecodeNetworkPolicies(policy, policies, install_attributes_);
DecodeReportingPolicies(policy, policies);
DecodeGenericPolicies(policy, policies);
}
// static // static
void DevicePolicyCache::DecodeLoginPolicies( void DevicePolicyCache::DecodeLoginPolicies(
const em::ChromeDeviceSettingsProto& policy, const em::ChromeDeviceSettingsProto& policy,
...@@ -473,7 +484,8 @@ void DevicePolicyCache::DecodeKioskPolicies( ...@@ -473,7 +484,8 @@ void DevicePolicyCache::DecodeKioskPolicies(
// static // static
void DevicePolicyCache::DecodeNetworkPolicies( void DevicePolicyCache::DecodeNetworkPolicies(
const em::ChromeDeviceSettingsProto& policy, const em::ChromeDeviceSettingsProto& policy,
PolicyMap* policies) { PolicyMap* policies,
EnterpriseInstallAttributes* install_attributes) {
if (policy.has_device_proxy_settings()) { if (policy.has_device_proxy_settings()) {
const em::DeviceProxySettingsProto& container( const em::DeviceProxySettingsProto& container(
policy.device_proxy_settings()); policy.device_proxy_settings());
...@@ -488,9 +500,15 @@ void DevicePolicyCache::DecodeNetworkPolicies( ...@@ -488,9 +500,15 @@ void DevicePolicyCache::DecodeNetworkPolicies(
proxy_settings->SetString(key::kProxyBypassList, proxy_settings->SetString(key::kProxyBypassList,
container.proxy_bypass_list()); container.proxy_bypass_list());
} }
// Figure out the level. Proxy policy is mandatory in kiosk mode.
PolicyLevel level = POLICY_LEVEL_RECOMMENDED;
if (install_attributes->GetMode() == DEVICE_MODE_KIOSK)
level = POLICY_LEVEL_MANDATORY;
if (!proxy_settings->empty()) { if (!proxy_settings->empty()) {
policies->Set(key::kProxySettings, policies->Set(key::kProxySettings,
POLICY_LEVEL_RECOMMENDED, level,
POLICY_SCOPE_MACHINE, POLICY_SCOPE_MACHINE,
proxy_settings.release()); proxy_settings.release());
} }
...@@ -636,16 +654,4 @@ void DevicePolicyCache::DecodeGenericPolicies( ...@@ -636,16 +654,4 @@ void DevicePolicyCache::DecodeGenericPolicies(
} }
} }
// static
void DevicePolicyCache::DecodeDevicePolicy(
const em::ChromeDeviceSettingsProto& policy,
PolicyMap* policies) {
// Decode the various groups of policies.
DecodeLoginPolicies(policy, policies);
DecodeKioskPolicies(policy, policies);
DecodeNetworkPolicies(policy, policies);
DecodeReportingPolicies(policy, policies);
DecodeGenericPolicies(policy, policies);
}
} // namespace policy } // namespace policy
...@@ -79,6 +79,10 @@ class DevicePolicyCache : public CloudPolicyCacheBase { ...@@ -79,6 +79,10 @@ class DevicePolicyCache : public CloudPolicyCacheBase {
// that is the case. // that is the case.
void CheckFetchingDone(); void CheckFetchingDone();
void DecodeDevicePolicy(
const enterprise_management::ChromeDeviceSettingsProto& policy,
PolicyMap* policies);
// Decode the various groups of policies. // Decode the various groups of policies.
static void DecodeLoginPolicies( static void DecodeLoginPolicies(
const enterprise_management::ChromeDeviceSettingsProto& policy, const enterprise_management::ChromeDeviceSettingsProto& policy,
...@@ -88,7 +92,8 @@ class DevicePolicyCache : public CloudPolicyCacheBase { ...@@ -88,7 +92,8 @@ class DevicePolicyCache : public CloudPolicyCacheBase {
PolicyMap* policies); PolicyMap* policies);
static void DecodeNetworkPolicies( static void DecodeNetworkPolicies(
const enterprise_management::ChromeDeviceSettingsProto& policy, const enterprise_management::ChromeDeviceSettingsProto& policy,
PolicyMap* policies); PolicyMap* policies,
EnterpriseInstallAttributes* install_attributes);
static void DecodeReportingPolicies( static void DecodeReportingPolicies(
const enterprise_management::ChromeDeviceSettingsProto& policy, const enterprise_management::ChromeDeviceSettingsProto& policy,
PolicyMap* policies); PolicyMap* policies);
...@@ -96,10 +101,6 @@ class DevicePolicyCache : public CloudPolicyCacheBase { ...@@ -96,10 +101,6 @@ class DevicePolicyCache : public CloudPolicyCacheBase {
const enterprise_management::ChromeDeviceSettingsProto& policy, const enterprise_management::ChromeDeviceSettingsProto& policy,
PolicyMap* policies); PolicyMap* policies);
static void DecodeDevicePolicy(
const enterprise_management::ChromeDeviceSettingsProto& policy,
PolicyMap* policies);
CloudPolicyDataStore* data_store_; CloudPolicyDataStore* data_store_;
EnterpriseInstallAttributes* install_attributes_; EnterpriseInstallAttributes* install_attributes_;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment