- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / webui / chromeos / login / locally_managed_user_creation_screen_handler.h
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 ListValue;
18 }
19
20 namespace chromeos {
21
22 class LocallyManagedUserCreationScreenHandler : public BaseScreenHandler {
23  public:
24   class Delegate {
25    public:
26     virtual ~Delegate() {}
27
28     // This method is called, when actor is being destroyed. Note, if Delegate
29     // is destroyed earlier then it has to call SetDelegate(NULL).
30     virtual void OnActorDestroyed(
31         LocallyManagedUserCreationScreenHandler* actor) = 0;
32
33     // Starts managed user creation flow, with manager identified by
34     // |manager_id| and |manager_password|.
35     virtual void AuthenticateManager(const std::string& manager_id,
36                                      const std::string& manager_password) = 0;
37
38     // Starts managed user creation flow, with supervised user that would have
39     // |display_name| and authenticated by the |managed_user_password|.
40     virtual void CreateManagedUser(
41         const string16& display_name,
42         const std::string& managed_user_password) = 0;
43
44     // Look up if user with name |display_name| already exist and can be
45     // imported. Returns user ID in |out_id|. Returns true if user was found,
46     // false otherwise.
47     virtual bool FindUserByDisplayName(const string16& display_name,
48                                        std::string *out_id) const = 0;
49
50     // Starts managed user import flow for user identified with |user_id|.
51     virtual void ImportManagedUser(const std::string& user_id) = 0;
52     // Starts managed user import flow for user identified with |user_id| and
53     // additional |password|.
54     virtual void ImportManagedUserWithPassword(const std::string& user_id,
55                                                const std::string& password) = 0;
56
57     virtual void AbortFlow() = 0;
58     virtual void FinishFlow() = 0;
59
60     virtual void CheckCameraPresence() = 0;
61     virtual void OnPhotoTaken(const std::string& raw_data) = 0;
62     virtual void OnImageSelected(const std::string& image_url,
63                                  const std::string& image_type) = 0;
64     virtual void OnImageAccepted() = 0;
65     virtual void OnPageSelected(const std::string& page) = 0;
66   };
67
68   LocallyManagedUserCreationScreenHandler();
69   virtual ~LocallyManagedUserCreationScreenHandler();
70
71   virtual void PrepareToShow();
72   virtual void Show();
73   virtual void Hide();
74   virtual void SetDelegate(Delegate* delegate);
75
76   void ShowManagerPasswordError();
77
78   void ShowIntroPage();
79   void ShowManagerSelectionPage();
80   void ShowUsernamePage();
81
82   // Shows progress or error message close in the button area. |is_progress| is
83   // true for progress messages and false for error messages.
84   void ShowStatusMessage(bool is_progress, const string16& message);
85   void ShowTutorialPage();
86
87   void ShowErrorPage(const string16& title,
88                      const string16& message,
89                      const string16& button_text);
90
91   // Navigates to specified page.
92   void ShowPage(const std::string& page);
93
94   void SetCameraPresent(bool enabled);
95
96   void ShowExistingManagedUsers(const base::ListValue* users);
97
98   // BaseScreenHandler implementation:
99   virtual void DeclareLocalizedValues(LocalizedValuesBuilder* builder) OVERRIDE;
100   virtual void Initialize() OVERRIDE;
101
102   // WebUIMessageHandler implementation:
103   virtual void RegisterMessages() OVERRIDE;
104
105  private:
106   // WebUI message handlers.
107   void HandleCheckLocallyManagedUserName(const string16& name);
108
109   void HandleManagerSelected(const std::string& manager_id);
110   void HandleImportUserSelected(const std::string& user_id);
111
112   void HandleFinishLocalManagedUserCreation();
113   void HandleAbortLocalManagedUserCreation();
114   void HandleRetryLocalManagedUserCreation(const base::ListValue* args);
115   void HandleCurrentSupervisedUserPage(const std::string& current_page);
116
117   void HandleAuthenticateManager(const std::string& raw_manager_username,
118                                  const std::string& manager_password);
119   void HandleCreateManagedUser(const string16& new_raw_user_name,
120                                const std::string& new_user_password);
121   void HandleImportSupervisedUser(const std::string& user_id);
122   void HandleImportSupervisedUserWithPassword(const std::string& user_id,
123                                               const std::string& password);
124
125   void HandleGetImages();
126   void HandlePhotoTaken(const std::string& image_url);
127   void HandleCheckCameraPresence();
128   void HandleSelectImage(const std::string& image_url,
129                          const std::string& image_type);
130
131   void UpdateText(const std::string& element_id, const string16& text);
132
133   Delegate* delegate_;
134
135   DISALLOW_COPY_AND_ASSIGN(LocallyManagedUserCreationScreenHandler);
136 };
137
138 }  // namespace chromeos
139
140 #endif  // CHROME_BROWSER_UI_WEBUI_CHROMEOS_LOGIN_LOCALLY_MANAGED_USER_CREATION_SCREEN_HANDLER_H_