Index: chrome/browser/chromeos/login/existing_user_controller.cc |
diff --git a/chrome/browser/chromeos/login/existing_user_controller.cc b/chrome/browser/chromeos/login/existing_user_controller.cc |
index a68276985cd5bca8bd2be8422fb58b5ef76ba983..6a0c6fdc19d3bc81c696d1f9e573193591e62874 100644 |
--- a/chrome/browser/chromeos/login/existing_user_controller.cc |
+++ b/chrome/browser/chromeos/login/existing_user_controller.cc |
@@ -33,6 +33,7 @@ |
#include "chrome/browser/chromeos/login/user_manager.h" |
#include "chrome/browser/chromeos/login/wizard_controller.h" |
#include "chrome/browser/chromeos/net/connectivity_state_helper.h" |
+#include "chrome/browser/chromeos/policy/device_local_account.h" |
#include "chrome/browser/chromeos/profiles/profile_helper.h" |
#include "chrome/browser/chromeos/settings/cros_settings.h" |
#include "chrome/browser/chromeos/settings/cros_settings_names.h" |
@@ -899,10 +900,24 @@ void ExistingUserController::ActivateWizard(const std::string& screen_name) { |
} |
void ExistingUserController::ConfigurePublicSessionAutoLogin() { |
Mattias Nissler (ping if slow)
2013/05/15 09:38:47
Hm, maybe a better approach for this would be to p
bartfab (slow)
2013/05/17 11:14:28
I don't think that would be right. Auto-login is n
Mattias Nissler (ping if slow)
2013/05/17 14:29:44
What I'm saying is that ExistingUserController sho
bartfab (slow)
2013/05/17 16:08:47
A near-term goal is to create User objects for all
|
- if (!cros_settings_->GetString( |
- kAccountsPrefDeviceLocalAccountAutoLoginId, |
- &public_session_auto_login_username_)) { |
- public_session_auto_login_username_.clear(); |
+ std::string auto_login_account_id; |
+ cros_settings_->GetString(kAccountsPrefDeviceLocalAccountAutoLoginId, |
+ &auto_login_account_id); |
+ |
+ const base::ListValue* device_local_accounts_list; |
+ cros_settings_->GetList(kAccountsPrefDeviceLocalAccounts, |
+ &device_local_accounts_list); |
+ const std::vector<policy::DeviceLocalAccount> device_local_accounts = |
+ policy::DecodeDeviceLocalAccountsList(device_local_accounts_list); |
+ |
+ public_session_auto_login_username_.clear(); |
+ for (std::vector<policy::DeviceLocalAccount>::const_iterator |
+ it = device_local_accounts.begin(); |
+ it != device_local_accounts.end(); ++it) { |
+ if (it->account_id == auto_login_account_id) { |
+ public_session_auto_login_username_ = it->user_id; |
+ break; |
+ } |
} |
const User* user = |