Index: chrome/browser/policy/device_policy_decoder_chromeos.cc |
diff --git a/chrome/browser/policy/device_policy_decoder_chromeos.cc b/chrome/browser/policy/device_policy_decoder_chromeos.cc |
index 0017d65d0e473ff7412f7cb8433c309373d28ad6..330756225997a1179312c16b138306282445301a 100644 |
--- a/chrome/browser/policy/device_policy_decoder_chromeos.cc |
+++ b/chrome/browser/policy/device_policy_decoder_chromeos.cc |
@@ -8,6 +8,7 @@ |
#include "base/logging.h" |
#include "base/values.h" |
+#include "chrome/browser/chromeos/settings/cros_settings_names.h" |
#include "chrome/browser/policy/app_pack_updater.h" |
#include "chrome/browser/policy/enterprise_install_attributes.h" |
#include "chrome/browser/policy/policy_map.h" |
@@ -346,6 +347,30 @@ void DecodeAutoUpdatePolicies(const em::ChromeDeviceSettingsProto& policy, |
} |
} |
+void DecodeLocalAccountsPolicies(const em::ChromeDeviceSettingsProto& policy, |
+ PolicyMap* policies) { |
+ if (!policy.has_local_accounts()) |
+ return; |
+ |
+ const em::LocalAccountsProto& local_accounts = policy.local_accounts(); |
+ if (local_accounts.local_account().size() > 0) { |
+ ListValue* account_list = new ListValue(); |
+ RepeatedPtrField<em::LocalAccountDefinitionProto>::const_iterator entry; |
+ for (entry = local_accounts.local_account().begin(); |
+ entry != local_accounts.local_account().end(); |
+ ++entry) { |
+ DictionaryValue* account_dict = new DictionaryValue(); |
+ account_dict->SetString(chromeos::kLocalAccountId, entry->id()); |
+ account_dict->SetString(chromeos::kLocalAccountName, entry->name()); |
+ account_list->Append(account_dict); |
+ } |
+ policies->Set(key::kDeviceLocalAccounts, |
+ POLICY_LEVEL_MANDATORY, |
+ POLICY_SCOPE_MACHINE, |
+ account_list); |
+ } |
+} |
+ |
void DecodeGenericPolicies(const em::ChromeDeviceSettingsProto& policy, |
PolicyMap* policies) { |
if (policy.has_device_policy_refresh_rate()) { |
@@ -408,6 +433,7 @@ void DecodeDevicePolicy(const em::ChromeDeviceSettingsProto& policy, |
DecodeNetworkPolicies(policy, policies, install_attributes); |
DecodeReportingPolicies(policy, policies); |
DecodeAutoUpdatePolicies(policy, policies); |
+ DecodeLocalAccountsPolicies(policy, policies); |
DecodeGenericPolicies(policy, policies); |
} |