Home | History | Annotate | Download | only in login
      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
      3 // found in the LICENSE file.
      4 
      5 #ifndef CHROME_BROWSER_UI_WEBUI_CHROMEOS_LOGIN_LOCALLY_MANAGED_USER_CREATION_SCREEN_HANDLER_H_
      6 #define CHROME_BROWSER_UI_WEBUI_CHROMEOS_LOGIN_LOCALLY_MANAGED_USER_CREATION_SCREEN_HANDLER_H_
      7 
      8 #include <string>
      9 
     10 #include "base/compiler_specific.h"
     11 #include "base/strings/string16.h"
     12 #include "chrome/browser/chromeos/login/default_user_images.h"
     13 #include "chrome/browser/ui/webui/chromeos/login/base_screen_handler.h"
     14 #include "content/public/browser/web_ui.h"
     15 
     16 namespace base {
     17 class DictionaryValue;
     18 }
     19 
     20 namespace chromeos {
     21 
     22 class LocallyManagedUserCreationScreenHandler : public BaseScreenHandler {
     23  public:
     24   class Delegate {
     25    public:
     26     virtual ~Delegate() {}
     27 
     28     // Called when screen is exited.
     29     virtual void OnExit() = 0;
     30 
     31     // This method is called, when actor is being destroyed. Note, if Delegate
     32     // is destroyed earlier then it has to call SetDelegate(NULL).
     33     virtual void OnActorDestroyed(
     34         LocallyManagedUserCreationScreenHandler* actor) = 0;
     35 
     36     // Starts managed user creation flow, with manager identified by
     37     // |manager_id| and |manager_password|.
     38     virtual void AuthenticateManager(const std::string& manager_id,
     39                                      const std::string& manager_password) = 0;
     40 
     41     // Starts managed user creation flow, with manager identified by
     42     // |manager_id| and |manager_password|, and locally managed user that would
     43     // have |display_name| and authenticated by the |managed_user_password|.
     44     virtual void CreateManagedUser(
     45         const string16& display_name,
     46         const std::string& managed_user_password) = 0;
     47 
     48     virtual void AbortFlow() = 0;
     49     virtual void FinishFlow() = 0;
     50 
     51     virtual void CheckCameraPresence() = 0;
     52     virtual void OnPhotoTaken(const std::string& raw_data) = 0;
     53     virtual void OnImageSelected(const std::string& image_url,
     54                                  const std::string& image_type) = 0;
     55     virtual void OnImageAccepted() = 0;
     56   };
     57 
     58   LocallyManagedUserCreationScreenHandler();
     59   virtual ~LocallyManagedUserCreationScreenHandler();
     60 
     61   virtual void PrepareToShow();
     62   virtual void Show();
     63   virtual void Hide();
     64   virtual void SetDelegate(Delegate* delegate);
     65 
     66   void ShowManagerPasswordError();
     67 
     68   void ShowIntroPage();
     69   void ShowManagerSelectionPage();
     70   void ShowUsernamePage();
     71 
     72   // Shows progress or error message close in the button area. |is_progress| is
     73   // true for progress messages and false for error messages.
     74   void ShowStatusMessage(bool is_progress, const string16& message);
     75   void ShowTutorialPage();
     76 
     77   void ShowErrorPage(const string16& title,
     78                      const string16& message,
     79                      const string16& button_text);
     80 
     81   void SetCameraPresent(bool enabled);
     82 
     83   // BaseScreenHandler implementation:
     84   virtual void DeclareLocalizedValues(LocalizedValuesBuilder* builder) OVERRIDE;
     85   virtual void Initialize() OVERRIDE;
     86 
     87   // WebUIMessageHandler implementation:
     88   virtual void RegisterMessages() OVERRIDE;
     89 
     90  private:
     91   // WebUI message handlers.
     92   void HandleCheckLocallyManagedUserName(const string16& name);
     93 
     94   void HandleManagerSelected(const std::string& manager_id);
     95 
     96   void HandleFinishLocalManagedUserCreation();
     97   void HandleAbortLocalManagedUserCreation();
     98   void HandleRetryLocalManagedUserCreation(const base::ListValue* args);
     99 
    100   void HandleAuthenticateManager(const std::string& raw_manager_username,
    101                                  const std::string& manager_password);
    102   void HandleCreateManagedUser(const string16& new_raw_user_name,
    103                                const std::string& new_user_password);
    104 
    105   void HandleGetImages();
    106   void HandlePhotoTaken(const std::string& image_url);
    107   void HandleCheckCameraPresence();
    108   void HandleSelectImage(const std::string& image_url,
    109                          const std::string& image_type);
    110 
    111   void UpdateText(const std::string& element_id, const string16& text);
    112 
    113   Delegate* delegate_;
    114 
    115   DISALLOW_COPY_AND_ASSIGN(LocallyManagedUserCreationScreenHandler);
    116 };
    117 
    118 }  // namespace chromeos
    119 
    120 #endif  // CHROME_BROWSER_UI_WEBUI_CHROMEOS_LOGIN_LOCALLY_MANAGED_USER_CREATION_SCREEN_HANDLER_H_
    121