OLD | NEW |
---|---|
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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/user_cros_settings_provider.h" | 5 #include "chrome/browser/chromeos/user_cros_settings_provider.h" |
6 | 6 |
7 #include <map> | 7 #include <map> |
8 #include <set> | 8 #include <set> |
9 | 9 |
10 #include "base/hash_tables.h" | 10 #include "base/hash_tables.h" |
(...skipping 18 matching lines...) Expand all Loading... | |
29 | 29 |
30 const char kTrueIncantation[] = "true"; | 30 const char kTrueIncantation[] = "true"; |
31 const char kFalseIncantation[] = "false"; | 31 const char kFalseIncantation[] = "false"; |
32 const char kTrustedSuffix[] = "/trusted"; | 32 const char kTrustedSuffix[] = "/trusted"; |
33 | 33 |
34 // For all our boolean settings following is applicable: | 34 // For all our boolean settings following is applicable: |
35 // true is default permissive value and false is safe prohibitic value. | 35 // true is default permissive value and false is safe prohibitic value. |
36 const char* kBooleanSettings[] = { | 36 const char* kBooleanSettings[] = { |
37 kAccountsPrefAllowNewUser, | 37 kAccountsPrefAllowNewUser, |
38 kAccountsPrefAllowGuest, | 38 kAccountsPrefAllowGuest, |
39 kAccountsPrefShowUserNamesOnSignIn | 39 kAccountsPrefShowUserNamesOnSignIn, |
40 kSignedDataRoamingEnabled, | |
Denis Lagno
2011/03/16 17:09:35
I think it should default to false. But in this c
Nikita (slow)
2011/03/17 10:45:57
Done.
| |
40 }; | 41 }; |
41 | 42 |
42 const char* kStringSettings[] = { | 43 const char* kStringSettings[] = { |
43 kDeviceOwner | 44 kDeviceOwner |
44 }; | 45 }; |
45 | 46 |
46 const char* kListSettings[] = { | 47 const char* kListSettings[] = { |
47 kAccountsPrefUsers | 48 kAccountsPrefUsers |
48 }; | 49 }; |
49 | 50 |
(...skipping 351 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
401 bool UserCrosSettingsProvider::RequestTrustedAllowNewUser(Task* callback) { | 402 bool UserCrosSettingsProvider::RequestTrustedAllowNewUser(Task* callback) { |
402 return UserCrosSettingsTrust::GetInstance()->RequestTrustedEntity( | 403 return UserCrosSettingsTrust::GetInstance()->RequestTrustedEntity( |
403 kAccountsPrefAllowNewUser, callback); | 404 kAccountsPrefAllowNewUser, callback); |
404 } | 405 } |
405 | 406 |
406 bool UserCrosSettingsProvider::RequestTrustedShowUsersOnSignin(Task* callback) { | 407 bool UserCrosSettingsProvider::RequestTrustedShowUsersOnSignin(Task* callback) { |
407 return UserCrosSettingsTrust::GetInstance()->RequestTrustedEntity( | 408 return UserCrosSettingsTrust::GetInstance()->RequestTrustedEntity( |
408 kAccountsPrefShowUserNamesOnSignIn, callback); | 409 kAccountsPrefShowUserNamesOnSignIn, callback); |
409 } | 410 } |
410 | 411 |
412 bool UserCrosSettingsProvider::RequestTrustedDataRoamingEnabled( | |
413 Task* callback) { | |
414 return UserCrosSettingsTrust::GetInstance()->RequestTrustedEntity( | |
415 kSignedDataRoamingEnabled, callback); | |
416 } | |
417 | |
411 bool UserCrosSettingsProvider::RequestTrustedOwner(Task* callback) { | 418 bool UserCrosSettingsProvider::RequestTrustedOwner(Task* callback) { |
412 return UserCrosSettingsTrust::GetInstance()->RequestTrustedEntity( | 419 return UserCrosSettingsTrust::GetInstance()->RequestTrustedEntity( |
413 kDeviceOwner, callback); | 420 kDeviceOwner, callback); |
414 } | 421 } |
415 | 422 |
416 // static | 423 // static |
417 bool UserCrosSettingsProvider::cached_allow_guest() { | 424 bool UserCrosSettingsProvider::cached_allow_guest() { |
418 // Trigger prefetching if singleton object still does not exist. | 425 // Trigger prefetching if singleton object still does not exist. |
419 UserCrosSettingsTrust::GetInstance(); | 426 UserCrosSettingsTrust::GetInstance(); |
420 return g_browser_process->local_state()->GetBoolean(kAccountsPrefAllowGuest); | 427 return g_browser_process->local_state()->GetBoolean(kAccountsPrefAllowGuest); |
421 } | 428 } |
422 | 429 |
423 // static | 430 // static |
424 bool UserCrosSettingsProvider::cached_allow_new_user() { | 431 bool UserCrosSettingsProvider::cached_allow_new_user() { |
425 // Trigger prefetching if singleton object still does not exist. | 432 // Trigger prefetching if singleton object still does not exist. |
426 UserCrosSettingsTrust::GetInstance(); | 433 UserCrosSettingsTrust::GetInstance(); |
427 return g_browser_process->local_state()->GetBoolean( | 434 return g_browser_process->local_state()->GetBoolean( |
428 kAccountsPrefAllowNewUser); | 435 kAccountsPrefAllowNewUser); |
429 } | 436 } |
430 | 437 |
431 // static | 438 // static |
439 bool UserCrosSettingsProvider::cached_data_roaming_enabled() { | |
440 // Trigger prefetching if singleton object still does not exist. | |
441 UserCrosSettingsTrust::GetInstance(); | |
442 return g_browser_process->local_state()->GetBoolean( | |
443 kSignedDataRoamingEnabled); | |
444 } | |
445 | |
446 // static | |
432 bool UserCrosSettingsProvider::cached_show_users_on_signin() { | 447 bool UserCrosSettingsProvider::cached_show_users_on_signin() { |
433 // Trigger prefetching if singleton object still does not exist. | 448 // Trigger prefetching if singleton object still does not exist. |
434 UserCrosSettingsTrust::GetInstance(); | 449 UserCrosSettingsTrust::GetInstance(); |
435 return g_browser_process->local_state()->GetBoolean( | 450 return g_browser_process->local_state()->GetBoolean( |
436 kAccountsPrefShowUserNamesOnSignIn); | 451 kAccountsPrefShowUserNamesOnSignIn); |
437 } | 452 } |
438 | 453 |
439 // static | 454 // static |
440 const ListValue* UserCrosSettingsProvider::cached_whitelist() { | 455 const ListValue* UserCrosSettingsProvider::cached_whitelist() { |
441 PrefService* prefs = g_browser_process->local_state(); | 456 PrefService* prefs = g_browser_process->local_state(); |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
496 ListValue* user_list = new ListValue; | 511 ListValue* user_list = new ListValue; |
497 GetUserWhitelist(user_list); | 512 GetUserWhitelist(user_list); |
498 *out_value = user_list; | 513 *out_value = user_list; |
499 return true; | 514 return true; |
500 } | 515 } |
501 | 516 |
502 return false; | 517 return false; |
503 } | 518 } |
504 | 519 |
505 bool UserCrosSettingsProvider::HandlesSetting(const std::string& path) { | 520 bool UserCrosSettingsProvider::HandlesSetting(const std::string& path) { |
506 return ::StartsWithASCII(path, "cros.accounts.", true); | 521 return ::StartsWithASCII(path, "cros.accounts.", true) || |
522 ::StartsWithASCII(path, "cros.signed.", true); | |
507 } | 523 } |
508 | 524 |
509 void UserCrosSettingsProvider::WhitelistUser(const std::string& email) { | 525 void UserCrosSettingsProvider::WhitelistUser(const std::string& email) { |
510 SignedSettingsHelper::Get()->StartWhitelistOp( | 526 SignedSettingsHelper::Get()->StartWhitelistOp( |
511 email, true, UserCrosSettingsTrust::GetInstance()); | 527 email, true, UserCrosSettingsTrust::GetInstance()); |
512 PrefService* prefs = g_browser_process->local_state(); | 528 PrefService* prefs = g_browser_process->local_state(); |
513 ListValue* cached_whitelist = prefs->GetMutableList(kAccountsPrefUsers); | 529 ListValue* cached_whitelist = prefs->GetMutableList(kAccountsPrefUsers); |
514 cached_whitelist->Append(Value::CreateStringValue(email)); | 530 cached_whitelist->Append(Value::CreateStringValue(email)); |
515 prefs->ScheduleSavePersistentPrefs(); | 531 prefs->ScheduleSavePersistentPrefs(); |
516 } | 532 } |
517 | 533 |
518 void UserCrosSettingsProvider::UnwhitelistUser(const std::string& email) { | 534 void UserCrosSettingsProvider::UnwhitelistUser(const std::string& email) { |
519 SignedSettingsHelper::Get()->StartWhitelistOp( | 535 SignedSettingsHelper::Get()->StartWhitelistOp( |
520 email, false, UserCrosSettingsTrust::GetInstance()); | 536 email, false, UserCrosSettingsTrust::GetInstance()); |
521 | 537 |
522 PrefService* prefs = g_browser_process->local_state(); | 538 PrefService* prefs = g_browser_process->local_state(); |
523 ListValue* cached_whitelist = prefs->GetMutableList(kAccountsPrefUsers); | 539 ListValue* cached_whitelist = prefs->GetMutableList(kAccountsPrefUsers); |
524 StringValue email_value(email); | 540 StringValue email_value(email); |
525 if (cached_whitelist->Remove(email_value) != -1) | 541 if (cached_whitelist->Remove(email_value) != -1) |
526 prefs->ScheduleSavePersistentPrefs(); | 542 prefs->ScheduleSavePersistentPrefs(); |
527 } | 543 } |
528 | 544 |
529 // static | 545 // static |
530 void UserCrosSettingsProvider::UpdateCachedOwner(const std::string& email) { | 546 void UserCrosSettingsProvider::UpdateCachedOwner(const std::string& email) { |
531 UpdateCacheString(kDeviceOwner, email, USE_VALUE_SUPPLIED); | 547 UpdateCacheString(kDeviceOwner, email, USE_VALUE_SUPPLIED); |
532 } | 548 } |
533 | 549 |
534 } // namespace chromeos | 550 } // namespace chromeos |
OLD | NEW |