Chromium Code Reviews| 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 |