1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CHROME_BROWSER_CHROMEOS_LOGIN_SUPERVISED_SUPERVISED_USER_CREATION_FLOW_H_
6 #define CHROME_BROWSER_CHROMEOS_LOGIN_SUPERVISED_SUPERVISED_USER_CREATION_FLOW_H_
8 #include "base/basictypes.h"
9 #include "base/compiler_specific.h"
10 #include "base/strings/string16.h"
11 #include "chrome/browser/chromeos/login/user_flow.h"
12 #include "components/user_manager/user.h"
18 // UserFlow implementation for creating new supervised user.
19 class SupervisedUserCreationFlow : public ExtendedUserFlow {
21 explicit SupervisedUserCreationFlow(const std::string& manager_id);
22 virtual ~SupervisedUserCreationFlow();
24 virtual bool CanLockScreen() OVERRIDE;
25 virtual bool ShouldShowSettings() OVERRIDE;
26 virtual bool ShouldLaunchBrowser() OVERRIDE;
27 virtual bool ShouldSkipPostLoginScreens() OVERRIDE;
28 virtual bool HandleLoginFailure(const AuthFailure& failure) OVERRIDE;
29 virtual void HandleLoginSuccess(const UserContext& context) OVERRIDE;
30 virtual bool HandlePasswordChangeDetected() OVERRIDE;
31 virtual void HandleOAuthTokenStatusChange(
32 user_manager::User::OAuthTokenStatus status) OVERRIDE;
33 virtual void LaunchExtraSteps(Profile* profile) OVERRIDE;
35 // Display name for user being created.
37 // Password for user being created.
38 std::string password_;
40 // Indicates if manager OAuth2 token has been validated.
41 bool token_validated_;
43 // Indicates if manager was successfully authenticated against
47 // Indicates that cryptohome is mounted and OAuth2 token is validated.
48 // Used to avoid multiple notifications.
49 bool session_started_;
51 Profile* manager_profile_;
53 DISALLOW_COPY_AND_ASSIGN(SupervisedUserCreationFlow);
56 } // namespace chromeos
58 #endif // CHROME_BROWSER_CHROMEOS_LOGIN_SUPERVISED_SUPERVISED_USER_CREATION_FLOW_H_