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/login/existing_user_controller.h" | 5 #include "chrome/browser/chromeos/login/existing_user_controller.h" |
6 | 6 |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/bind_helpers.h" | 10 #include "base/bind_helpers.h" |
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
124 ExistingUserController::ExistingUserController(LoginDisplayHost* host) | 124 ExistingUserController::ExistingUserController(LoginDisplayHost* host) |
125 : login_status_consumer_(NULL), | 125 : login_status_consumer_(NULL), |
126 host_(host), | 126 host_(host), |
127 login_display_(host_->CreateLoginDisplay(this)), | 127 login_display_(host_->CreateLoginDisplay(this)), |
128 num_login_attempts_(0), | 128 num_login_attempts_(0), |
129 cros_settings_(CrosSettings::Get()), | 129 cros_settings_(CrosSettings::Get()), |
130 weak_factory_(this), | 130 weak_factory_(this), |
131 offline_failed_(false), | 131 offline_failed_(false), |
132 is_login_in_progress_(false), | 132 is_login_in_progress_(false), |
133 password_changed_(false), | 133 password_changed_(false), |
| 134 auth_mode_(LoginPerformer::AUTH_MODE_EXTENSION), |
134 do_auto_enrollment_(false), | 135 do_auto_enrollment_(false), |
135 signin_screen_ready_(false), | 136 signin_screen_ready_(false), |
136 network_state_helper_(new login::NetworkStateHelper) { | 137 network_state_helper_(new login::NetworkStateHelper) { |
137 DCHECK(current_controller_ == NULL); | 138 DCHECK(current_controller_ == NULL); |
138 current_controller_ = this; | 139 current_controller_ = this; |
139 | 140 |
140 registrar_.Add(this, | 141 registrar_.Add(this, |
141 chrome::NOTIFICATION_LOGIN_USER_IMAGE_CHANGED, | 142 chrome::NOTIFICATION_LOGIN_USER_IMAGE_CHANGED, |
142 content::NotificationService::AllSources()); | 143 content::NotificationService::AllSources()); |
143 registrar_.Add(this, | 144 registrar_.Add(this, |
(...skipping 619 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
763 | 764 |
764 // Clear the recorded displayed email so it won't affect any future attempts. | 765 // Clear the recorded displayed email so it won't affect any future attempts. |
765 display_email_.clear(); | 766 display_email_.clear(); |
766 } | 767 } |
767 | 768 |
768 void ExistingUserController::OnLoginSuccess(const UserContext& user_context) { | 769 void ExistingUserController::OnLoginSuccess(const UserContext& user_context) { |
769 is_login_in_progress_ = false; | 770 is_login_in_progress_ = false; |
770 offline_failed_ = false; | 771 offline_failed_ = false; |
771 login_display_->set_signin_completed(true); | 772 login_display_->set_signin_completed(true); |
772 | 773 |
| 774 // Login performer will be gone so cache this value to use |
| 775 // once profile is loaded. |
| 776 password_changed_ = login_performer_->password_changed(); |
| 777 auth_mode_ = login_performer_->auth_mode(); |
| 778 |
773 UserManager::Get()->GetUserFlow(user_context.GetUserID())-> | 779 UserManager::Get()->GetUserFlow(user_context.GetUserID())-> |
774 HandleLoginSuccess(user_context); | 780 HandleLoginSuccess(user_context); |
775 | 781 |
776 StopPublicSessionAutoLoginTimer(); | 782 StopPublicSessionAutoLoginTimer(); |
777 | 783 |
778 const bool has_auth_cookies = | 784 const bool has_auth_cookies = |
779 login_performer_->auth_mode() == LoginPerformer::AUTH_MODE_EXTENSION && | 785 login_performer_->auth_mode() == LoginPerformer::AUTH_MODE_EXTENSION && |
780 user_context.GetAuthCode().empty(); | 786 user_context.GetAuthCode().empty(); |
781 | 787 |
782 // Login performer will be gone so cache this value to use | |
783 // once profile is loaded. | |
784 password_changed_ = login_performer_->password_changed(); | |
785 | |
786 // LoginPerformer instance will delete itself once online auth result is OK. | 788 // LoginPerformer instance will delete itself once online auth result is OK. |
787 // In case of failure it'll bring up ScreenLock and ask for | 789 // In case of failure it'll bring up ScreenLock and ask for |
788 // correct password/display error message. | 790 // correct password/display error message. |
789 // Even in case when following online,offline protocol and returning | 791 // Even in case when following online,offline protocol and returning |
790 // requests_pending = false, let LoginPerformer delete itself. | 792 // requests_pending = false, let LoginPerformer delete itself. |
791 login_performer_->set_delegate(NULL); | 793 login_performer_->set_delegate(NULL); |
792 ignore_result(login_performer_.release()); | 794 ignore_result(login_performer_.release()); |
793 | 795 |
794 // Update user's displayed email. | 796 // Update user's displayed email. |
795 if (!display_email_.empty()) { | 797 if (!display_email_.empty()) { |
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
948 ConfigurePublicSessionAutoLogin(); | 950 ConfigurePublicSessionAutoLogin(); |
949 return; | 951 return; |
950 } | 952 } |
951 } | 953 } |
952 | 954 |
953 void ExistingUserController::ActivateWizard(const std::string& screen_name) { | 955 void ExistingUserController::ActivateWizard(const std::string& screen_name) { |
954 scoped_ptr<base::DictionaryValue> params; | 956 scoped_ptr<base::DictionaryValue> params; |
955 host_->StartWizard(screen_name, params.Pass()); | 957 host_->StartWizard(screen_name, params.Pass()); |
956 } | 958 } |
957 | 959 |
| 960 LoginPerformer::AuthorizationMode ExistingUserController::auth_mode() const { |
| 961 if (login_performer_) |
| 962 return login_performer_->auth_mode(); |
| 963 |
| 964 return auth_mode_; |
| 965 } |
| 966 |
| 967 bool ExistingUserController::password_changed() const { |
| 968 if (login_performer_) |
| 969 return login_performer_->password_changed(); |
| 970 |
| 971 return password_changed_; |
| 972 } |
| 973 |
958 void ExistingUserController::ConfigurePublicSessionAutoLogin() { | 974 void ExistingUserController::ConfigurePublicSessionAutoLogin() { |
959 std::string auto_login_account_id; | 975 std::string auto_login_account_id; |
960 cros_settings_->GetString(kAccountsPrefDeviceLocalAccountAutoLoginId, | 976 cros_settings_->GetString(kAccountsPrefDeviceLocalAccountAutoLoginId, |
961 &auto_login_account_id); | 977 &auto_login_account_id); |
962 const std::vector<policy::DeviceLocalAccount> device_local_accounts = | 978 const std::vector<policy::DeviceLocalAccount> device_local_accounts = |
963 policy::GetDeviceLocalAccounts(cros_settings_); | 979 policy::GetDeviceLocalAccounts(cros_settings_); |
964 | 980 |
965 public_session_auto_login_username_.clear(); | 981 public_session_auto_login_username_.clear(); |
966 for (std::vector<policy::DeviceLocalAccount>::const_iterator | 982 for (std::vector<policy::DeviceLocalAccount>::const_iterator |
967 it = device_local_accounts.begin(); | 983 it = device_local_accounts.begin(); |
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1133 } | 1149 } |
1134 | 1150 |
1135 void ExistingUserController::SendAccessibilityAlert( | 1151 void ExistingUserController::SendAccessibilityAlert( |
1136 const std::string& alert_text) { | 1152 const std::string& alert_text) { |
1137 AccessibilityAlertInfo event(ProfileHelper::GetSigninProfile(), alert_text); | 1153 AccessibilityAlertInfo event(ProfileHelper::GetSigninProfile(), alert_text); |
1138 SendControlAccessibilityNotification( | 1154 SendControlAccessibilityNotification( |
1139 ui::AX_EVENT_VALUE_CHANGED, &event); | 1155 ui::AX_EVENT_VALUE_CHANGED, &event); |
1140 } | 1156 } |
1141 | 1157 |
1142 } // namespace chromeos | 1158 } // namespace chromeos |
OLD | NEW |