Index: chrome/browser/chromeos/settings/device_settings_provider.cc |
diff --git a/chrome/browser/chromeos/settings/device_settings_provider.cc b/chrome/browser/chromeos/settings/device_settings_provider.cc |
index e38b877f9cb2ddcb17c9bd2d07321b829d2c9089..333071742e9ea114973de874f4a39525e9948577 100644 |
--- a/chrome/browser/chromeos/settings/device_settings_provider.cc |
+++ b/chrome/browser/chromeos/settings/device_settings_provider.cc |
@@ -215,6 +215,14 @@ void DeviceSettingsProvider::SetInPolicy() { |
guest->set_guest_mode_enabled(guest_value); |
else |
NOTREACHED(); |
+ } else if (prop == kAccountsPrefSupervisedUsersEnabled) { |
+ em::SupervisedUsersSettingsProto* supervised = |
+ device_settings_.mutable_supervised_users_settings(); |
+ bool supervised_value; |
+ if (value->GetAsBoolean(&supervised_value)) |
+ supervised->set_supervised_users_enabled(supervised_value); |
+ else |
+ NOTREACHED(); |
} else if (prop == kAccountsPrefShowUserNamesOnSignIn) { |
em::ShowUserNamesOnSigninProto* show = |
device_settings_.mutable_show_user_names(); |
@@ -386,7 +394,6 @@ void DeviceSettingsProvider::SetInPolicy() { |
} else { |
// The remaining settings don't support Set(), since they are not |
// intended to be customizable by the user: |
- // kAccountsPrefSupervisedUsersEnabled |
// kAppPack |
// kDeviceAttestationEnabled |
// kDeviceOwner |
@@ -460,6 +467,12 @@ void DeviceSettingsProvider::DecodeLoginPolicies( |
policy.guest_mode_enabled().guest_mode_enabled()); |
new_values_cache->SetBoolean( |
+ kAccountsPrefSupervisedUsersEnabled, |
+ !policy.has_supervised_users_settings() || |
+ !policy.supervised_users_settings().has_supervised_users_enabled() || |
+ policy.supervised_users_settings().supervised_users_enabled()); |
+ |
+ new_values_cache->SetBoolean( |
kAccountsPrefShowUserNamesOnSignIn, |
!policy.has_show_user_names() || |
!policy.show_user_names().has_show_user_names() || |