| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/ui/webui/chromeos/login/gaia_screen_handler.h" | 5 #include "chrome/browser/ui/webui/chromeos/login/gaia_screen_handler.h" |
| 6 | 6 |
| 7 #include "ash/system/chromeos/devicetype_utils.h" | 7 #include "ash/system/chromeos/devicetype_utils.h" |
| 8 #include "base/bind.h" | 8 #include "base/bind.h" |
| 9 #include "base/guid.h" | 9 #include "base/guid.h" |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 431 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 442 NetworkError::ERROR_REASON_FRAME_ERROR; | 442 NetworkError::ERROR_REASON_FRAME_ERROR; |
| 443 frame_state_ = FRAME_STATE_ERROR; | 443 frame_state_ = FRAME_STATE_ERROR; |
| 444 UpdateState(error_reason); | 444 UpdateState(error_reason); |
| 445 } | 445 } |
| 446 | 446 |
| 447 AccountId GaiaScreenHandler::GetAccountId( | 447 AccountId GaiaScreenHandler::GetAccountId( |
| 448 const std::string& authenticated_email, | 448 const std::string& authenticated_email, |
| 449 const std::string& gaia_id) const { | 449 const std::string& gaia_id) const { |
| 450 const std::string canonicalized_email = | 450 const std::string canonicalized_email = |
| 451 gaia::CanonicalizeEmail(gaia::SanitizeEmail(authenticated_email)); | 451 gaia::CanonicalizeEmail(gaia::SanitizeEmail(authenticated_email)); |
| 452 const AccountId authenticated_account_id( | |
| 453 AccountId::FromUserEmailGaiaId(canonicalized_email, gaia_id)); | |
| 454 | 452 |
| 455 // If we don't have UserManager instance (i.e. we are in unit test), | 453 const AccountId account_id = user_manager::UserManager::GetKnownUserAccountId( |
| 456 // or a known user has authenticated, just log in. | 454 authenticated_email, gaia_id); |
| 457 user_manager::UserManager* user_manager = user_manager::UserManager::Get(); | |
| 458 if (!user_manager || user_manager->IsKnownUser(authenticated_account_id)) | |
| 459 return authenticated_account_id; | |
| 460 | 455 |
| 461 // If [part of] user id has changed, update stored data and connect user | 456 if (account_id.GetUserEmail() != canonicalized_email) { |
| 462 // to existing home directory. | 457 LOG(WARNING) << "Existing user '" << account_id.GetUserEmail() |
| 463 AccountId old_account_id(EmptyAccountId()); | 458 << "' authenticated by alias '" << canonicalized_email << "'."; |
| 464 if (!user_manager->GetKnownUserAccountId(authenticated_account_id, | |
| 465 &old_account_id)) { | |
| 466 return authenticated_account_id; | |
| 467 } | 459 } |
| 468 | 460 |
| 469 if (old_account_id.GetUserEmail() != canonicalized_email) { | 461 return account_id; |
| 470 LOG(WARNING) << "Existing user '" << old_account_id.GetUserEmail() | |
| 471 << "' authenticated by alias '" << canonicalized_email << "'."; | |
| 472 return old_account_id; | |
| 473 } | |
| 474 | |
| 475 return authenticated_account_id; | |
| 476 } | 462 } |
| 477 | 463 |
| 478 void GaiaScreenHandler::HandleCompleteAuthentication( | 464 void GaiaScreenHandler::HandleCompleteAuthentication( |
| 479 const std::string& gaia_id, | 465 const std::string& gaia_id, |
| 480 const std::string& email, | 466 const std::string& email, |
| 481 const std::string& password, | 467 const std::string& password, |
| 482 const std::string& auth_code, | 468 const std::string& auth_code, |
| 483 bool using_saml, | 469 bool using_saml, |
| 484 const std::string& gaps_cookie) { | 470 const std::string& gaps_cookie) { |
| 485 if (!Delegate()) | 471 if (!Delegate()) |
| (...skipping 405 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 891 bool GaiaScreenHandler::IsRestrictiveProxy() const { | 877 bool GaiaScreenHandler::IsRestrictiveProxy() const { |
| 892 return !disable_restrictive_proxy_check_for_test_ && | 878 return !disable_restrictive_proxy_check_for_test_ && |
| 893 !IsOnline(captive_portal_status_); | 879 !IsOnline(captive_portal_status_); |
| 894 } | 880 } |
| 895 | 881 |
| 896 void GaiaScreenHandler::DisableRestrictiveProxyCheckForTest() { | 882 void GaiaScreenHandler::DisableRestrictiveProxyCheckForTest() { |
| 897 disable_restrictive_proxy_check_for_test_ = true; | 883 disable_restrictive_proxy_check_for_test_ = true; |
| 898 } | 884 } |
| 899 | 885 |
| 900 } // namespace chromeos | 886 } // namespace chromeos |
| OLD | NEW |