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() {
}
}
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
void DevicePolicyCache::DecodeLoginPolicies(
const em::ChromeDeviceSettingsProto& policy,
......@@ -473,7 +484,8 @@ void DevicePolicyCache::DecodeKioskPolicies(
// static
void DevicePolicyCache::DecodeNetworkPolicies(
const em::ChromeDeviceSettingsProto& policy,
PolicyMap* policies) {
PolicyMap* policies,
EnterpriseInstallAttributes* install_attributes) {
if (policy.has_device_proxy_settings()) {
const em::DeviceProxySettingsProto& container(
policy.device_proxy_settings());
......@@ -488,9 +500,15 @@ void DevicePolicyCache::DecodeNetworkPolicies(
proxy_settings->SetString(key::kProxyBypassList,
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()) {
policies->Set(key::kProxySettings,
POLICY_LEVEL_RECOMMENDED,
level,
POLICY_SCOPE_MACHINE,
proxy_settings.release());
}
......@@ -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
......@@ -79,6 +79,10 @@ class DevicePolicyCache : public CloudPolicyCacheBase {
// that is the case.
void CheckFetchingDone();
void DecodeDevicePolicy(
const enterprise_management::ChromeDeviceSettingsProto& policy,
PolicyMap* policies);
// Decode the various groups of policies.
static void DecodeLoginPolicies(
const enterprise_management::ChromeDeviceSettingsProto& policy,
......@@ -88,7 +92,8 @@ class DevicePolicyCache : public CloudPolicyCacheBase {
PolicyMap* policies);
static void DecodeNetworkPolicies(
const enterprise_management::ChromeDeviceSettingsProto& policy,
PolicyMap* policies);
PolicyMap* policies,
EnterpriseInstallAttributes* install_attributes);
static void DecodeReportingPolicies(
const enterprise_management::ChromeDeviceSettingsProto& policy,
PolicyMap* policies);
......@@ -96,10 +101,6 @@ class DevicePolicyCache : public CloudPolicyCacheBase {
const enterprise_management::ChromeDeviceSettingsProto& policy,
PolicyMap* policies);
static void DecodeDevicePolicy(
const enterprise_management::ChromeDeviceSettingsProto& policy,
PolicyMap* policies);
CloudPolicyDataStore* data_store_;
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