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 #include "chrome/browser/policy/device_policy_decoder_chromeos.h" | 5 #include "chrome/browser/policy/device_policy_decoder_chromeos.h" |
6 | 6 |
7 #include <limits> | 7 #include <limits> |
8 | 8 |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "base/values.h" | 10 #include "base/values.h" |
| 11 #include "chrome/browser/chromeos/settings/cros_settings_names.h" |
11 #include "chrome/browser/policy/app_pack_updater.h" | 12 #include "chrome/browser/policy/app_pack_updater.h" |
12 #include "chrome/browser/policy/enterprise_install_attributes.h" | 13 #include "chrome/browser/policy/enterprise_install_attributes.h" |
13 #include "chrome/browser/policy/policy_map.h" | 14 #include "chrome/browser/policy/policy_map.h" |
14 #include "chrome/browser/policy/proto/chrome_device_policy.pb.h" | 15 #include "chrome/browser/policy/proto/chrome_device_policy.pb.h" |
15 #include "chromeos/dbus/dbus_thread_manager.h" | 16 #include "chromeos/dbus/dbus_thread_manager.h" |
16 #include "chromeos/dbus/update_engine_client.h" | 17 #include "chromeos/dbus/update_engine_client.h" |
17 #include "policy/policy_constants.h" | 18 #include "policy/policy_constants.h" |
18 #include "third_party/cros_system_api/dbus/service_constants.h" | 19 #include "third_party/cros_system_api/dbus/service_constants.h" |
19 | 20 |
20 using google::protobuf::RepeatedField; | 21 using google::protobuf::RepeatedField; |
(...skipping 318 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
339 allowed_connection_types->Append(value); | 340 allowed_connection_types->Append(value); |
340 } | 341 } |
341 policies->Set(key::kDeviceUpdateAllowedConnectionTypes, | 342 policies->Set(key::kDeviceUpdateAllowedConnectionTypes, |
342 POLICY_LEVEL_MANDATORY, | 343 POLICY_LEVEL_MANDATORY, |
343 POLICY_SCOPE_MACHINE, | 344 POLICY_SCOPE_MACHINE, |
344 allowed_connection_types); | 345 allowed_connection_types); |
345 } | 346 } |
346 } | 347 } |
347 } | 348 } |
348 | 349 |
| 350 void DecodeLocalAccountsPolicies(const em::ChromeDeviceSettingsProto& policy, |
| 351 PolicyMap* policies) { |
| 352 if (!policy.has_local_accounts()) |
| 353 return; |
| 354 |
| 355 const em::LocalAccountsProto& local_accounts = policy.local_accounts(); |
| 356 if (local_accounts.local_account().size() > 0) { |
| 357 ListValue* account_list = new ListValue(); |
| 358 RepeatedPtrField<em::LocalAccountDefinitionProto>::const_iterator entry; |
| 359 for (entry = local_accounts.local_account().begin(); |
| 360 entry != local_accounts.local_account().end(); |
| 361 ++entry) { |
| 362 DictionaryValue* account_dict = new DictionaryValue(); |
| 363 account_dict->SetString(chromeos::kLocalAccountId, entry->id()); |
| 364 account_dict->SetString(chromeos::kLocalAccountName, entry->name()); |
| 365 account_list->Append(account_dict); |
| 366 } |
| 367 policies->Set(key::kDeviceLocalAccounts, |
| 368 POLICY_LEVEL_MANDATORY, |
| 369 POLICY_SCOPE_MACHINE, |
| 370 account_list); |
| 371 } |
| 372 } |
| 373 |
349 void DecodeGenericPolicies(const em::ChromeDeviceSettingsProto& policy, | 374 void DecodeGenericPolicies(const em::ChromeDeviceSettingsProto& policy, |
350 PolicyMap* policies) { | 375 PolicyMap* policies) { |
351 if (policy.has_device_policy_refresh_rate()) { | 376 if (policy.has_device_policy_refresh_rate()) { |
352 const em::DevicePolicyRefreshRateProto& container( | 377 const em::DevicePolicyRefreshRateProto& container( |
353 policy.device_policy_refresh_rate()); | 378 policy.device_policy_refresh_rate()); |
354 if (container.has_device_policy_refresh_rate()) { | 379 if (container.has_device_policy_refresh_rate()) { |
355 policies->Set(key::kDevicePolicyRefreshRate, | 380 policies->Set(key::kDevicePolicyRefreshRate, |
356 POLICY_LEVEL_MANDATORY, | 381 POLICY_LEVEL_MANDATORY, |
357 POLICY_SCOPE_MACHINE, | 382 POLICY_SCOPE_MACHINE, |
358 DecodeIntegerValue(container.device_policy_refresh_rate())); | 383 DecodeIntegerValue(container.device_policy_refresh_rate())); |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
401 | 426 |
402 void DecodeDevicePolicy(const em::ChromeDeviceSettingsProto& policy, | 427 void DecodeDevicePolicy(const em::ChromeDeviceSettingsProto& policy, |
403 PolicyMap* policies, | 428 PolicyMap* policies, |
404 EnterpriseInstallAttributes* install_attributes) { | 429 EnterpriseInstallAttributes* install_attributes) { |
405 // Decode the various groups of policies. | 430 // Decode the various groups of policies. |
406 DecodeLoginPolicies(policy, policies); | 431 DecodeLoginPolicies(policy, policies); |
407 DecodeKioskPolicies(policy, policies, install_attributes); | 432 DecodeKioskPolicies(policy, policies, install_attributes); |
408 DecodeNetworkPolicies(policy, policies, install_attributes); | 433 DecodeNetworkPolicies(policy, policies, install_attributes); |
409 DecodeReportingPolicies(policy, policies); | 434 DecodeReportingPolicies(policy, policies); |
410 DecodeAutoUpdatePolicies(policy, policies); | 435 DecodeAutoUpdatePolicies(policy, policies); |
| 436 DecodeLocalAccountsPolicies(policy, policies); |
411 DecodeGenericPolicies(policy, policies); | 437 DecodeGenericPolicies(policy, policies); |
412 } | 438 } |
413 | 439 |
414 } // namespace policy | 440 } // namespace policy |
OLD | NEW |