Index: chrome/browser/chromeos/login/supervised/supervised_user_creation_screen.cc |
diff --git a/chrome/browser/chromeos/login/supervised/supervised_user_creation_screen.cc b/chrome/browser/chromeos/login/supervised/supervised_user_creation_screen.cc |
index 620299bed32b8b47765888d8a2e73903480e378c..c83fa63d7448f2f525af7d18fd9466872baed111 100644 |
--- a/chrome/browser/chromeos/login/supervised/supervised_user_creation_screen.cc |
+++ b/chrome/browser/chromeos/login/supervised/supervised_user_creation_screen.cc |
@@ -17,6 +17,7 @@ |
#include "chrome/browser/chromeos/login/supervised/supervised_user_authentication.h" |
#include "chrome/browser/chromeos/login/supervised/supervised_user_creation_controller.h" |
#include "chrome/browser/chromeos/login/supervised/supervised_user_creation_controller_new.h" |
+#include "chrome/browser/chromeos/login/supervised/supervised_user_creation_flow.h" |
#include "chrome/browser/chromeos/login/users/avatar/user_image_manager.h" |
#include "chrome/browser/chromeos/login/users/chrome_user_manager.h" |
#include "chrome/browser/chromeos/login/users/supervised_user_manager.h" |
@@ -99,6 +100,7 @@ SupervisedUserCreationScreen::SupervisedUserCreationScreen( |
: WizardScreen(observer), |
actor_(actor), |
on_error_screen_(false), |
+ manager_signin_in_progress_(false), |
last_page_(kNameOfIntroScreen), |
sync_service_(NULL), |
image_decoder_(NULL), |
@@ -162,6 +164,7 @@ void SupervisedUserCreationScreen::OnPortalDetectionCompleted( |
} |
void SupervisedUserCreationScreen::ShowManagerInconsistentStateErrorScreen() { |
+ manager_signin_in_progress_ = false; |
if (!actor_) |
return; |
actor_->ShowErrorPage( |
@@ -201,6 +204,13 @@ void SupervisedUserCreationScreen::FinishFlow() { |
void SupervisedUserCreationScreen::AuthenticateManager( |
const std::string& manager_id, |
const std::string& manager_password) { |
+ if (manager_signin_in_progress_) |
+ return; |
+ manager_signin_in_progress_ = true; |
+ |
+ UserFlow* flow = new SupervisedUserCreationFlow(manager_id); |
+ ChromeUserManager::Get()->SetUserFlow(manager_id, flow); |
+ |
// Make sure no two controllers exist at the same time. |
controller_.reset(); |
@@ -333,12 +343,14 @@ void SupervisedUserCreationScreen::ImportSupervisedUserWithPassword( |
} |
void SupervisedUserCreationScreen::OnManagerLoginFailure() { |
+ manager_signin_in_progress_ = false; |
if (actor_) |
actor_->ShowManagerPasswordError(); |
} |
void SupervisedUserCreationScreen::OnManagerFullyAuthenticated( |
Profile* manager_profile) { |
+ manager_signin_in_progress_ = false; |
DCHECK(controller_.get()); |
// For manager user, move desktop to locked container so that windows created |
// during the user image picker step are below it. |