Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(22)

Side by Side Diff: chrome/browser/chromeos/settings/device_settings_provider.cc

Issue 12218078: Implement a policy to autologin a public account. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: r3b@$3 Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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/command_line.h" 10 #include "base/command_line.h"
(...skipping 23 matching lines...) Expand all
34 namespace em = enterprise_management; 34 namespace em = enterprise_management;
35 35
36 namespace chromeos { 36 namespace chromeos {
37 37
38 namespace { 38 namespace {
39 39
40 // List of settings handled by the DeviceSettingsProvider. 40 // List of settings handled by the DeviceSettingsProvider.
41 const char* kKnownSettings[] = { 41 const char* kKnownSettings[] = {
42 kAccountsPrefAllowGuest, 42 kAccountsPrefAllowGuest,
43 kAccountsPrefAllowNewUser, 43 kAccountsPrefAllowNewUser,
44 kAccountsPrefDeviceLocalAccounts,
45 kAccountsPrefDeviceLocalAccountAutoLoginDelay,
46 kAccountsPrefDeviceLocalAccountAutoLoginId,
44 kAccountsPrefEphemeralUsersEnabled, 47 kAccountsPrefEphemeralUsersEnabled,
45 kAccountsPrefShowUserNamesOnSignIn, 48 kAccountsPrefShowUserNamesOnSignIn,
46 kAccountsPrefUsers, 49 kAccountsPrefUsers,
47 kAccountsPrefDeviceLocalAccounts,
48 kAllowRedeemChromeOsRegistrationOffers, 50 kAllowRedeemChromeOsRegistrationOffers,
49 kAppPack, 51 kAppPack,
50 kDeviceOwner, 52 kDeviceOwner,
51 kIdleLogoutTimeout, 53 kIdleLogoutTimeout,
52 kIdleLogoutWarningDuration, 54 kIdleLogoutWarningDuration,
53 kPolicyMissingMitigationMode, 55 kPolicyMissingMitigationMode,
54 kReleaseChannel, 56 kReleaseChannel,
55 kReleaseChannelDelegated, 57 kReleaseChannelDelegated,
56 kReportDeviceActivityTimes, 58 kReportDeviceActivityTimes,
57 kReportDeviceBootMode, 59 kReportDeviceBootMode,
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after
228 entry != accounts_list->end(); ++entry) { 230 entry != accounts_list->end(); ++entry) {
229 std::string id; 231 std::string id;
230 if ((*entry)->GetAsString(&id)) 232 if ((*entry)->GetAsString(&id))
231 device_local_accounts->add_account()->set_id(id); 233 device_local_accounts->add_account()->set_id(id);
232 else 234 else
233 NOTREACHED(); 235 NOTREACHED();
234 } 236 }
235 } else { 237 } else {
236 NOTREACHED(); 238 NOTREACHED();
237 } 239 }
240 } else if (prop == kAccountsPrefDeviceLocalAccountAutoLoginId) {
241 em::DeviceLocalAccountsProto* device_local_accounts =
242 device_settings_.mutable_device_local_accounts();
243 std::string id;
244 if (value->GetAsString(&id))
245 device_local_accounts->set_auto_login_id(id);
246 else
247 NOTREACHED();
248 } else if (prop == kAccountsPrefDeviceLocalAccountAutoLoginDelay) {
249 em::DeviceLocalAccountsProto* device_local_accounts =
250 device_settings_.mutable_device_local_accounts();
251 int delay;
252 if (value->GetAsInteger(&delay))
253 device_local_accounts->set_auto_login_delay(delay);
254 else
255 NOTREACHED();
238 } else if (prop == kSignedDataRoamingEnabled) { 256 } else if (prop == kSignedDataRoamingEnabled) {
239 em::DataRoamingEnabledProto* roam = 257 em::DataRoamingEnabledProto* roam =
240 device_settings_.mutable_data_roaming_enabled(); 258 device_settings_.mutable_data_roaming_enabled();
241 bool roaming_value = false; 259 bool roaming_value = false;
242 if (value->GetAsBoolean(&roaming_value)) 260 if (value->GetAsBoolean(&roaming_value))
243 roam->set_data_roaming_enabled(roaming_value); 261 roam->set_data_roaming_enabled(roaming_value);
244 else 262 else
245 NOTREACHED(); 263 NOTREACHED();
246 ApplyRoamingSetting(roaming_value); 264 ApplyRoamingSetting(roaming_value);
247 } else if (prop == kSettingProxyEverywhere) { 265 } else if (prop == kSettingProxyEverywhere) {
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
404 whitelist_proto.user_whitelist(); 422 whitelist_proto.user_whitelist();
405 for (RepeatedPtrField<std::string>::const_iterator it = whitelist.begin(); 423 for (RepeatedPtrField<std::string>::const_iterator it = whitelist.begin();
406 it != whitelist.end(); ++it) { 424 it != whitelist.end(); ++it) {
407 list->Append(new base::StringValue(*it)); 425 list->Append(new base::StringValue(*it));
408 } 426 }
409 new_values_cache->SetValue(kAccountsPrefUsers, list); 427 new_values_cache->SetValue(kAccountsPrefUsers, list);
410 428
411 base::ListValue* account_list = new base::ListValue(); 429 base::ListValue* account_list = new base::ListValue();
412 CommandLine* command_line = CommandLine::ForCurrentProcess(); 430 CommandLine* command_line = CommandLine::ForCurrentProcess();
413 if (!command_line->HasSwitch(switches::kDisableLocalAccounts)) { 431 if (!command_line->HasSwitch(switches::kDisableLocalAccounts)) {
432 const em::DeviceLocalAccountsProto device_local_accounts_proto =
433 policy.device_local_accounts();
414 const RepeatedPtrField<em::DeviceLocalAccountInfoProto>& accounts = 434 const RepeatedPtrField<em::DeviceLocalAccountInfoProto>& accounts =
415 policy.device_local_accounts().account(); 435 device_local_accounts_proto.account();
416 RepeatedPtrField<em::DeviceLocalAccountInfoProto>::const_iterator entry; 436 RepeatedPtrField<em::DeviceLocalAccountInfoProto>::const_iterator entry;
417 for (entry = accounts.begin(); entry != accounts.end(); ++entry) { 437 for (entry = accounts.begin(); entry != accounts.end(); ++entry) {
418 if (entry->has_id()) 438 if (entry->has_id())
419 account_list->AppendString(entry->id()); 439 account_list->AppendString(entry->id());
420 } 440 }
421 } 441 }
422 new_values_cache->SetValue(kAccountsPrefDeviceLocalAccounts, account_list); 442 new_values_cache->SetValue(kAccountsPrefDeviceLocalAccounts, account_list);
423 443
424 if (policy.has_start_up_flags()) { 444 if (policy.has_start_up_flags()) {
425 base::ListValue* list = new base::ListValue(); 445 base::ListValue* list = new base::ListValue();
426 const em::StartUpFlagsProto& flags_proto = policy.start_up_flags(); 446 const em::StartUpFlagsProto& flags_proto = policy.start_up_flags();
427 const RepeatedPtrField<std::string>& flags = flags_proto.flags(); 447 const RepeatedPtrField<std::string>& flags = flags_proto.flags();
428 for (RepeatedPtrField<std::string>::const_iterator it = flags.begin(); 448 for (RepeatedPtrField<std::string>::const_iterator it = flags.begin();
429 it != flags.end(); ++it) { 449 it != flags.end(); ++it) {
430 list->Append(new base::StringValue(*it)); 450 list->Append(new base::StringValue(*it));
431 } 451 }
432 new_values_cache->SetValue(kStartUpFlags, list); 452 new_values_cache->SetValue(kStartUpFlags, list);
433 } 453 }
454
455 if (policy.has_device_local_accounts()) {
456 if (policy.device_local_accounts().has_auto_login_id()) {
457 new_values_cache->SetString(
458 kAccountsPrefDeviceLocalAccountAutoLoginId,
459 policy.device_local_accounts().auto_login_id());
460 }
461 if (policy.device_local_accounts().has_auto_login_delay()) {
462 new_values_cache->SetInteger(
463 kAccountsPrefDeviceLocalAccountAutoLoginDelay,
464 policy.device_local_accounts().auto_login_delay());
465 }
466 }
434 } 467 }
435 468
436 void DeviceSettingsProvider::DecodeKioskPolicies( 469 void DeviceSettingsProvider::DecodeKioskPolicies(
437 const em::ChromeDeviceSettingsProto& policy, 470 const em::ChromeDeviceSettingsProto& policy,
438 PrefValueMap* new_values_cache) const { 471 PrefValueMap* new_values_cache) const {
439 if (policy.has_forced_logout_timeouts()) { 472 if (policy.has_forced_logout_timeouts()) {
440 if (policy.forced_logout_timeouts().has_idle_logout_timeout()) { 473 if (policy.forced_logout_timeouts().has_idle_logout_timeout()) {
441 new_values_cache->SetInteger( 474 new_values_cache->SetInteger(
442 kIdleLogoutTimeout, 475 kIdleLogoutTimeout,
443 policy.forced_logout_timeouts().idle_logout_timeout()); 476 policy.forced_logout_timeouts().idle_logout_timeout());
(...skipping 376 matching lines...) Expand 10 before | Expand all | Expand 10 after
820 void DeviceSettingsProvider::AttemptMigration() { 853 void DeviceSettingsProvider::AttemptMigration() {
821 if (device_settings_service_->HasPrivateOwnerKey()) { 854 if (device_settings_service_->HasPrivateOwnerKey()) {
822 PrefValueMap::const_iterator i; 855 PrefValueMap::const_iterator i;
823 for (i = migration_values_.begin(); i != migration_values_.end(); ++i) 856 for (i = migration_values_.begin(); i != migration_values_.end(); ++i)
824 DoSet(i->first, *i->second); 857 DoSet(i->first, *i->second);
825 migration_values_.Clear(); 858 migration_values_.Clear();
826 } 859 }
827 } 860 }
828 861
829 } // namespace chromeos 862 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698