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/chromeos/settings/device_settings_provider.h" | 5 #include "chrome/browser/chromeos/settings/device_settings_provider.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
9 #include "base/callback.h" | 9 #include "base/callback.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
208 else | 208 else |
209 NOTREACHED(); | 209 NOTREACHED(); |
210 } else if (prop == kAccountsPrefAllowGuest) { | 210 } else if (prop == kAccountsPrefAllowGuest) { |
211 em::GuestModeEnabledProto* guest = | 211 em::GuestModeEnabledProto* guest = |
212 device_settings_.mutable_guest_mode_enabled(); | 212 device_settings_.mutable_guest_mode_enabled(); |
213 bool guest_value; | 213 bool guest_value; |
214 if (value->GetAsBoolean(&guest_value)) | 214 if (value->GetAsBoolean(&guest_value)) |
215 guest->set_guest_mode_enabled(guest_value); | 215 guest->set_guest_mode_enabled(guest_value); |
216 else | 216 else |
217 NOTREACHED(); | 217 NOTREACHED(); |
218 } else if (prop == kAccountsPrefSupervisedUsersEnabled) { | |
219 em::SupervisedUsersSettingsProto* supervised = | |
220 device_settings_.mutable_supervised_users_settings(); | |
221 bool supervised_value; | |
222 if (value->GetAsBoolean(&supervised_value)) | |
223 supervised->set_supervised_users_enabled(supervised_value); | |
224 else | |
225 NOTREACHED(); | |
218 } else if (prop == kAccountsPrefShowUserNamesOnSignIn) { | 226 } else if (prop == kAccountsPrefShowUserNamesOnSignIn) { |
219 em::ShowUserNamesOnSigninProto* show = | 227 em::ShowUserNamesOnSigninProto* show = |
220 device_settings_.mutable_show_user_names(); | 228 device_settings_.mutable_show_user_names(); |
221 bool show_value; | 229 bool show_value; |
222 if (value->GetAsBoolean(&show_value)) | 230 if (value->GetAsBoolean(&show_value)) |
223 show->set_show_user_names(show_value); | 231 show->set_show_user_names(show_value); |
224 else | 232 else |
225 NOTREACHED(); | 233 NOTREACHED(); |
226 } else if (prop == kAccountsPrefDeviceLocalAccounts) { | 234 } else if (prop == kAccountsPrefDeviceLocalAccounts) { |
227 em::DeviceLocalAccountsProto* device_local_accounts = | 235 em::DeviceLocalAccountsProto* device_local_accounts = |
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
379 device_settings_.mutable_attestation_settings(); | 387 device_settings_.mutable_attestation_settings(); |
380 bool setting_enabled; | 388 bool setting_enabled; |
381 if (value->GetAsBoolean(&setting_enabled)) { | 389 if (value->GetAsBoolean(&setting_enabled)) { |
382 attestation_settings->set_content_protection_enabled(setting_enabled); | 390 attestation_settings->set_content_protection_enabled(setting_enabled); |
383 } else { | 391 } else { |
384 NOTREACHED(); | 392 NOTREACHED(); |
385 } | 393 } |
386 } else { | 394 } else { |
387 // The remaining settings don't support Set(), since they are not | 395 // The remaining settings don't support Set(), since they are not |
388 // intended to be customizable by the user: | 396 // intended to be customizable by the user: |
389 // kAccountsPrefSupervisedUsersEnabled | |
390 // kAppPack | 397 // kAppPack |
391 // kDeviceAttestationEnabled | 398 // kDeviceAttestationEnabled |
392 // kDeviceOwner | 399 // kDeviceOwner |
393 // kIdleLogoutTimeout | 400 // kIdleLogoutTimeout |
394 // kIdleLogoutWarningDuration | 401 // kIdleLogoutWarningDuration |
395 // kReleaseChannelDelegated | 402 // kReleaseChannelDelegated |
396 // kReportDeviceActivityTimes | 403 // kReportDeviceActivityTimes |
397 // kReportDeviceBootMode | 404 // kReportDeviceBootMode |
398 // kReportDeviceLocation | 405 // kReportDeviceLocation |
399 // kReportDeviceVersionInfo | 406 // kReportDeviceVersionInfo |
(...skipping 29 matching lines...) Expand all Loading... | |
429 } | 436 } |
430 } | 437 } |
431 | 438 |
432 void DeviceSettingsProvider::DecodeLoginPolicies( | 439 void DeviceSettingsProvider::DecodeLoginPolicies( |
433 const em::ChromeDeviceSettingsProto& policy, | 440 const em::ChromeDeviceSettingsProto& policy, |
434 PrefValueMap* new_values_cache) const { | 441 PrefValueMap* new_values_cache) const { |
435 // For all our boolean settings the following is applicable: | 442 // For all our boolean settings the following is applicable: |
436 // true is default permissive value and false is safe prohibitive value. | 443 // true is default permissive value and false is safe prohibitive value. |
437 // Exceptions: | 444 // Exceptions: |
438 // kAccountsPrefEphemeralUsersEnabled has a default value of false. | 445 // kAccountsPrefEphemeralUsersEnabled has a default value of false. |
446 // kAccountsPrefSupervisedUsersEnabled has a default value of false | |
447 // for enterprise devices and true for consumer devices. | |
439 if (policy.has_allow_new_users() && | 448 if (policy.has_allow_new_users() && |
440 policy.allow_new_users().has_allow_new_users()) { | 449 policy.allow_new_users().has_allow_new_users()) { |
441 if (policy.allow_new_users().allow_new_users()) { | 450 if (policy.allow_new_users().allow_new_users()) { |
442 // New users allowed, user whitelist ignored. | 451 // New users allowed, user whitelist ignored. |
443 new_values_cache->SetBoolean(kAccountsPrefAllowNewUser, true); | 452 new_values_cache->SetBoolean(kAccountsPrefAllowNewUser, true); |
444 } else { | 453 } else { |
445 // New users not allowed, enforce user whitelist if present. | 454 // New users not allowed, enforce user whitelist if present. |
446 new_values_cache->SetBoolean(kAccountsPrefAllowNewUser, | 455 new_values_cache->SetBoolean(kAccountsPrefAllowNewUser, |
447 !policy.has_user_whitelist()); | 456 !policy.has_user_whitelist()); |
448 } | 457 } |
449 } else { | 458 } else { |
450 // No configured allow-new-users value, enforce whitelist if non-empty. | 459 // No configured allow-new-users value, enforce whitelist if non-empty. |
451 new_values_cache->SetBoolean( | 460 new_values_cache->SetBoolean( |
452 kAccountsPrefAllowNewUser, | 461 kAccountsPrefAllowNewUser, |
453 policy.user_whitelist().user_whitelist_size() == 0); | 462 policy.user_whitelist().user_whitelist_size() == 0); |
454 } | 463 } |
455 | 464 |
456 new_values_cache->SetBoolean( | 465 new_values_cache->SetBoolean( |
457 kAccountsPrefAllowGuest, | 466 kAccountsPrefAllowGuest, |
458 !policy.has_guest_mode_enabled() || | 467 !policy.has_guest_mode_enabled() || |
459 !policy.guest_mode_enabled().has_guest_mode_enabled() || | 468 !policy.guest_mode_enabled().has_guest_mode_enabled() || |
460 policy.guest_mode_enabled().guest_mode_enabled()); | 469 policy.guest_mode_enabled().guest_mode_enabled()); |
461 | 470 |
471 policy::BrowserPolicyConnectorChromeOS* connector = | |
472 g_browser_process->platform_part()->browser_policy_connector_chromeos(); | |
473 bool supervised_users_enabled = false; | |
474 if (connector->IsEnterpriseManaged()) { | |
475 supervised_users_enabled = | |
476 policy.has_supervised_users_settings() && | |
477 policy.supervised_users_settings().has_supervised_users_enabled() && | |
478 policy.supervised_users_settings().supervised_users_enabled(); | |
479 } else { | |
480 supervised_users_enabled = | |
481 !policy.has_supervised_users_settings() || | |
482 !policy.supervised_users_settings().has_supervised_users_enabled() || | |
483 policy.supervised_users_settings().supervised_users_enabled(); | |
484 } | |
485 new_values_cache->SetBoolean( | |
486 kAccountsPrefSupervisedUsersEnabled, supervised_users_enabled); | |
pastarmovj
2014/04/15 08:54:28
There is some issue here - the code below will ove
merkulova
2014/04/15 09:23:58
Done.
| |
487 | |
488 new_values_cache->SetBoolean( | |
489 kAccountsPrefSupervisedUsersEnabled, | |
pastarmovj
2014/04/15 08:54:28
...this here I mean.
merkulova
2014/04/15 09:23:58
Done.
| |
490 !policy.has_supervised_users_settings() || | |
491 !policy.supervised_users_settings().has_supervised_users_enabled() || | |
492 policy.supervised_users_settings().supervised_users_enabled()); | |
493 | |
462 new_values_cache->SetBoolean( | 494 new_values_cache->SetBoolean( |
463 kAccountsPrefShowUserNamesOnSignIn, | 495 kAccountsPrefShowUserNamesOnSignIn, |
464 !policy.has_show_user_names() || | 496 !policy.has_show_user_names() || |
465 !policy.show_user_names().has_show_user_names() || | 497 !policy.show_user_names().has_show_user_names() || |
466 policy.show_user_names().show_user_names()); | 498 policy.show_user_names().show_user_names()); |
467 | 499 |
468 new_values_cache->SetBoolean( | 500 new_values_cache->SetBoolean( |
469 kAccountsPrefEphemeralUsersEnabled, | 501 kAccountsPrefEphemeralUsersEnabled, |
470 policy.has_ephemeral_users_enabled() && | 502 policy.has_ephemeral_users_enabled() && |
471 policy.ephemeral_users_enabled().has_ephemeral_users_enabled() && | 503 policy.ephemeral_users_enabled().has_ephemeral_users_enabled() && |
(...skipping 500 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
972 void DeviceSettingsProvider::AttemptMigration() { | 1004 void DeviceSettingsProvider::AttemptMigration() { |
973 if (device_settings_service_->HasPrivateOwnerKey()) { | 1005 if (device_settings_service_->HasPrivateOwnerKey()) { |
974 PrefValueMap::const_iterator i; | 1006 PrefValueMap::const_iterator i; |
975 for (i = migration_values_.begin(); i != migration_values_.end(); ++i) | 1007 for (i = migration_values_.begin(); i != migration_values_.end(); ++i) |
976 DoSet(i->first, *i->second); | 1008 DoSet(i->first, *i->second); |
977 migration_values_.Clear(); | 1009 migration_values_.Clear(); |
978 } | 1010 } |
979 } | 1011 } |
980 | 1012 |
981 } // namespace chromeos | 1013 } // namespace chromeos |
OLD | NEW |