Home | History | Annotate | Download | only in supervised
      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.
      4 
      5 #ifndef CHROME_BROWSER_CHROMEOS_LOGIN_SUPERVISED_SUPERVISED_USER_CREATION_FLOW_H_
      6 #define CHROME_BROWSER_CHROMEOS_LOGIN_SUPERVISED_SUPERVISED_USER_CREATION_FLOW_H_
      7 
      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"
     13 
     14 class Profile;
     15 
     16 namespace chromeos {
     17 
     18 // UserFlow implementation for creating new supervised user.
     19 class SupervisedUserCreationFlow : public ExtendedUserFlow {
     20  public:
     21   explicit SupervisedUserCreationFlow(const std::string& manager_id);
     22   virtual ~SupervisedUserCreationFlow();
     23 
     24   virtual bool CanLockScreen() OVERRIDE;
     25   virtual bool ShouldShowSettings() OVERRIDE;
     26   virtual bool ShouldLaunchBrowser() OVERRIDE;
     27   virtual bool ShouldSkipPostLoginScreens() OVERRIDE;
     28   virtual bool SupportsEarlyRestartToApplyFlags() OVERRIDE;
     29   virtual bool HandleLoginFailure(const AuthFailure& failure) OVERRIDE;
     30   virtual void HandleLoginSuccess(const UserContext& context) OVERRIDE;
     31   virtual bool HandlePasswordChangeDetected() OVERRIDE;
     32   virtual void HandleOAuthTokenStatusChange(
     33       user_manager::User::OAuthTokenStatus status) OVERRIDE;
     34   virtual void LaunchExtraSteps(Profile* profile) OVERRIDE;
     35  private:
     36   // Display name for user being created.
     37   base::string16 name_;
     38   // Password for user being created.
     39   std::string password_;
     40 
     41   // Indicates if manager OAuth2 token has been validated.
     42   bool token_validated_;
     43 
     44   // Indicates if manager was successfully authenticated against
     45   // local cryptohome.
     46   bool logged_in_;
     47 
     48   // Indicates that cryptohome is mounted and OAuth2 token is validated.
     49   // Used to avoid multiple notifications.
     50   bool session_started_;
     51 
     52   Profile* manager_profile_;
     53 
     54   DISALLOW_COPY_AND_ASSIGN(SupervisedUserCreationFlow);
     55 };
     56 
     57 }  // namespace chromeos
     58 
     59 #endif  // CHROME_BROWSER_CHROMEOS_LOGIN_SUPERVISED_SUPERVISED_USER_CREATION_FLOW_H_
     60