OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/chromeos/login/managed/locally_managed_user_creation_sc
reen.h" | 5 #include "chrome/browser/chromeos/login/supervised/supervised_user_creation_scre
en.h" |
6 | 6 |
7 #include "ash/desktop_background/desktop_background_controller.h" | 7 #include "ash/desktop_background/desktop_background_controller.h" |
8 #include "ash/shell.h" | 8 #include "ash/shell.h" |
9 #include "base/rand_util.h" | 9 #include "base/rand_util.h" |
10 #include "base/values.h" | 10 #include "base/values.h" |
11 #include "chrome/browser/chromeos/camera_detector.h" | 11 #include "chrome/browser/chromeos/camera_detector.h" |
12 #include "chrome/browser/chromeos/login/existing_user_controller.h" | 12 #include "chrome/browser/chromeos/login/existing_user_controller.h" |
13 #include "chrome/browser/chromeos/login/managed/managed_user_creation_controller
.h" | |
14 #include "chrome/browser/chromeos/login/managed/managed_user_creation_controller
_new.h" | |
15 #include "chrome/browser/chromeos/login/managed/supervised_user_authentication.h
" | |
16 #include "chrome/browser/chromeos/login/screens/error_screen.h" | 13 #include "chrome/browser/chromeos/login/screens/error_screen.h" |
17 #include "chrome/browser/chromeos/login/screens/screen_observer.h" | 14 #include "chrome/browser/chromeos/login/screens/screen_observer.h" |
18 #include "chrome/browser/chromeos/login/signin_specifics.h" | 15 #include "chrome/browser/chromeos/login/signin_specifics.h" |
| 16 #include "chrome/browser/chromeos/login/supervised/supervised_user_authenticatio
n.h" |
| 17 #include "chrome/browser/chromeos/login/supervised/supervised_user_creation_cont
roller.h" |
| 18 #include "chrome/browser/chromeos/login/supervised/supervised_user_creation_cont
roller_new.h" |
19 #include "chrome/browser/chromeos/login/users/avatar/user_image_manager.h" | 19 #include "chrome/browser/chromeos/login/users/avatar/user_image_manager.h" |
20 #include "chrome/browser/chromeos/login/users/supervised_user_manager.h" | 20 #include "chrome/browser/chromeos/login/users/supervised_user_manager.h" |
21 #include "chrome/browser/chromeos/login/wizard_controller.h" | 21 #include "chrome/browser/chromeos/login/wizard_controller.h" |
22 #include "chrome/browser/supervised_user/supervised_user_constants.h" | 22 #include "chrome/browser/supervised_user/supervised_user_constants.h" |
23 #include "chrome/browser/supervised_user/supervised_user_shared_settings_service
.h" | 23 #include "chrome/browser/supervised_user/supervised_user_shared_settings_service
.h" |
24 #include "chrome/browser/supervised_user/supervised_user_shared_settings_service
_factory.h" | 24 #include "chrome/browser/supervised_user/supervised_user_shared_settings_service
_factory.h" |
25 #include "chrome/browser/supervised_user/supervised_user_sync_service.h" | 25 #include "chrome/browser/supervised_user/supervised_user_sync_service.h" |
26 #include "chrome/browser/supervised_user/supervised_user_sync_service_factory.h" | 26 #include "chrome/browser/supervised_user/supervised_user_sync_service_factory.h" |
27 #include "chromeos/login/auth/key.h" | 27 #include "chromeos/login/auth/key.h" |
28 #include "chromeos/login/auth/user_context.h" | 28 #include "chromeos/login/auth/user_context.h" |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
76 std::string()); | 76 std::string()); |
77 break; | 77 break; |
78 default: | 78 default: |
79 NOTREACHED(); | 79 NOTREACHED(); |
80 break; | 80 break; |
81 } | 81 } |
82 } | 82 } |
83 | 83 |
84 } // namespace | 84 } // namespace |
85 | 85 |
86 LocallyManagedUserCreationScreen::LocallyManagedUserCreationScreen( | 86 SupervisedUserCreationScreen::SupervisedUserCreationScreen( |
87 ScreenObserver* observer, | 87 ScreenObserver* observer, |
88 LocallyManagedUserCreationScreenHandler* actor) | 88 SupervisedUserCreationScreenHandler* actor) |
89 : WizardScreen(observer), | 89 : WizardScreen(observer), |
90 weak_factory_(this), | 90 weak_factory_(this), |
91 actor_(actor), | 91 actor_(actor), |
92 on_error_screen_(false), | 92 on_error_screen_(false), |
93 last_page_(kNameOfIntroScreen), | 93 last_page_(kNameOfIntroScreen), |
94 sync_service_(NULL), | 94 sync_service_(NULL), |
95 image_decoder_(NULL), | 95 image_decoder_(NULL), |
96 apply_photo_after_decoding_(false), | 96 apply_photo_after_decoding_(false), |
97 selected_image_(0) { | 97 selected_image_(0) { |
98 DCHECK(actor_); | 98 DCHECK(actor_); |
99 if (actor_) | 99 if (actor_) |
100 actor_->SetDelegate(this); | 100 actor_->SetDelegate(this); |
101 } | 101 } |
102 | 102 |
103 LocallyManagedUserCreationScreen::~LocallyManagedUserCreationScreen() { | 103 SupervisedUserCreationScreen::~SupervisedUserCreationScreen() { |
104 CameraPresenceNotifier::GetInstance()->RemoveObserver(this); | 104 CameraPresenceNotifier::GetInstance()->RemoveObserver(this); |
105 if (sync_service_) | 105 if (sync_service_) |
106 sync_service_->RemoveObserver(this); | 106 sync_service_->RemoveObserver(this); |
107 if (actor_) | 107 if (actor_) |
108 actor_->SetDelegate(NULL); | 108 actor_->SetDelegate(NULL); |
109 if (image_decoder_.get()) | 109 if (image_decoder_.get()) |
110 image_decoder_->set_delegate(NULL); | 110 image_decoder_->set_delegate(NULL); |
111 NetworkPortalDetector::Get()->RemoveObserver(this); | 111 NetworkPortalDetector::Get()->RemoveObserver(this); |
112 } | 112 } |
113 | 113 |
114 void LocallyManagedUserCreationScreen::PrepareToShow() { | 114 void SupervisedUserCreationScreen::PrepareToShow() { |
115 if (actor_) | 115 if (actor_) |
116 actor_->PrepareToShow(); | 116 actor_->PrepareToShow(); |
117 } | 117 } |
118 | 118 |
119 void LocallyManagedUserCreationScreen::Show() { | 119 void SupervisedUserCreationScreen::Show() { |
120 CameraPresenceNotifier::GetInstance()->AddObserver(this); | 120 CameraPresenceNotifier::GetInstance()->AddObserver(this); |
121 if (actor_) { | 121 if (actor_) { |
122 actor_->Show(); | 122 actor_->Show(); |
123 // TODO(antrim) : temorary hack (until upcoming hackaton). Should be | 123 // TODO(antrim) : temorary hack (until upcoming hackaton). Should be |
124 // removed once we have screens reworked. | 124 // removed once we have screens reworked. |
125 if (on_error_screen_) | 125 if (on_error_screen_) |
126 actor_->ShowPage(last_page_); | 126 actor_->ShowPage(last_page_); |
127 else | 127 else |
128 actor_->ShowIntroPage(); | 128 actor_->ShowIntroPage(); |
129 } | 129 } |
130 | 130 |
131 if (!on_error_screen_) | 131 if (!on_error_screen_) |
132 NetworkPortalDetector::Get()->AddAndFireObserver(this); | 132 NetworkPortalDetector::Get()->AddAndFireObserver(this); |
133 on_error_screen_ = false; | 133 on_error_screen_ = false; |
134 } | 134 } |
135 | 135 |
136 void LocallyManagedUserCreationScreen::OnPageSelected(const std::string& page) { | 136 void SupervisedUserCreationScreen::OnPageSelected(const std::string& page) { |
137 last_page_ = page; | 137 last_page_ = page; |
138 } | 138 } |
139 | 139 |
140 void LocallyManagedUserCreationScreen::OnPortalDetectionCompleted( | 140 void SupervisedUserCreationScreen::OnPortalDetectionCompleted( |
141 const NetworkState* network, | 141 const NetworkState* network, |
142 const NetworkPortalDetector::CaptivePortalState& state) { | 142 const NetworkPortalDetector::CaptivePortalState& state) { |
143 if (state.status == NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE) { | 143 if (state.status == NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE) { |
144 get_screen_observer()->HideErrorScreen(this); | 144 get_screen_observer()->HideErrorScreen(this); |
145 } else { | 145 } else { |
146 on_error_screen_ = true; | 146 on_error_screen_ = true; |
147 ErrorScreen* screen = get_screen_observer()->GetErrorScreen(); | 147 ErrorScreen* screen = get_screen_observer()->GetErrorScreen(); |
148 ConfigureErrorScreen(screen, network, state.status); | 148 ConfigureErrorScreen(screen, network, state.status); |
149 screen->SetUIState(ErrorScreen::UI_STATE_LOCALLY_MANAGED); | 149 screen->SetUIState(ErrorScreen::UI_STATE_SUPERVISED); |
150 get_screen_observer()->ShowErrorScreen(); | 150 get_screen_observer()->ShowErrorScreen(); |
151 } | 151 } |
152 } | 152 } |
153 | 153 |
154 void LocallyManagedUserCreationScreen:: | 154 void SupervisedUserCreationScreen::ShowManagerInconsistentStateErrorScreen() { |
155 ShowManagerInconsistentStateErrorScreen() { | |
156 if (!actor_) | 155 if (!actor_) |
157 return; | 156 return; |
158 actor_->ShowErrorPage( | 157 actor_->ShowErrorPage( |
159 l10n_util::GetStringUTF16( | 158 l10n_util::GetStringUTF16( |
160 IDS_CREATE_LOCALLY_MANAGED_USER_MANAGER_INCONSISTENT_STATE_TITLE), | 159 IDS_CREATE_LOCALLY_MANAGED_USER_MANAGER_INCONSISTENT_STATE_TITLE), |
161 l10n_util::GetStringUTF16( | 160 l10n_util::GetStringUTF16( |
162 IDS_CREATE_LOCALLY_MANAGED_USER_MANAGER_INCONSISTENT_STATE), | 161 IDS_CREATE_LOCALLY_MANAGED_USER_MANAGER_INCONSISTENT_STATE), |
163 l10n_util::GetStringUTF16( | 162 l10n_util::GetStringUTF16( |
164 IDS_CREATE_LOCALLY_MANAGED_USER_MANAGER_INCONSISTENT_STATE_BUTTON)); | 163 IDS_CREATE_LOCALLY_MANAGED_USER_MANAGER_INCONSISTENT_STATE_BUTTON)); |
165 } | 164 } |
166 | 165 |
167 void LocallyManagedUserCreationScreen::ShowInitialScreen() { | 166 void SupervisedUserCreationScreen::ShowInitialScreen() { |
168 if (actor_) | 167 if (actor_) |
169 actor_->ShowIntroPage(); | 168 actor_->ShowIntroPage(); |
170 } | 169 } |
171 | 170 |
172 void LocallyManagedUserCreationScreen::Hide() { | 171 void SupervisedUserCreationScreen::Hide() { |
173 CameraPresenceNotifier::GetInstance()->RemoveObserver(this); | 172 CameraPresenceNotifier::GetInstance()->RemoveObserver(this); |
174 if (actor_) | 173 if (actor_) |
175 actor_->Hide(); | 174 actor_->Hide(); |
176 if (!on_error_screen_) | 175 if (!on_error_screen_) |
177 NetworkPortalDetector::Get()->RemoveObserver(this); | 176 NetworkPortalDetector::Get()->RemoveObserver(this); |
178 } | 177 } |
179 | 178 |
180 std::string LocallyManagedUserCreationScreen::GetName() const { | 179 std::string SupervisedUserCreationScreen::GetName() const { |
181 return WizardController::kLocallyManagedUserCreationScreenName; | 180 return WizardController::kSupervisedUserCreationScreenName; |
182 } | 181 } |
183 | 182 |
184 void LocallyManagedUserCreationScreen::AbortFlow() { | 183 void SupervisedUserCreationScreen::AbortFlow() { |
185 controller_->CancelCreation(); | 184 controller_->CancelCreation(); |
186 } | 185 } |
187 | 186 |
188 void LocallyManagedUserCreationScreen::FinishFlow() { | 187 void SupervisedUserCreationScreen::FinishFlow() { |
189 controller_->FinishCreation(); | 188 controller_->FinishCreation(); |
190 } | 189 } |
191 | 190 |
192 void LocallyManagedUserCreationScreen::AuthenticateManager( | 191 void SupervisedUserCreationScreen::AuthenticateManager( |
193 const std::string& manager_id, | 192 const std::string& manager_id, |
194 const std::string& manager_password) { | 193 const std::string& manager_password) { |
195 // Make sure no two controllers exist at the same time. | 194 // Make sure no two controllers exist at the same time. |
196 controller_.reset(); | 195 controller_.reset(); |
197 | 196 |
198 controller_.reset(new ManagedUserCreationControllerNew(this, manager_id)); | 197 controller_.reset(new SupervisedUserCreationControllerNew(this, manager_id)); |
199 | 198 |
200 UserContext user_context(manager_id); | 199 UserContext user_context(manager_id); |
201 user_context.SetKey(Key(manager_password)); | 200 user_context.SetKey(Key(manager_password)); |
202 ExistingUserController::current_controller()->Login(user_context, | 201 ExistingUserController::current_controller()->Login(user_context, |
203 SigninSpecifics()); | 202 SigninSpecifics()); |
204 } | 203 } |
205 | 204 |
206 void LocallyManagedUserCreationScreen::CreateManagedUser( | 205 void SupervisedUserCreationScreen::CreateSupervisedUser( |
207 const base::string16& display_name, | 206 const base::string16& display_name, |
208 const std::string& managed_user_password) { | 207 const std::string& supervised_user_password) { |
209 DCHECK(controller_.get()); | 208 DCHECK(controller_.get()); |
210 int image; | 209 int image; |
211 if (selected_image_ == User::kExternalImageIndex) | 210 if (selected_image_ == User::kExternalImageIndex) |
212 // TODO(dzhioev): crbug/249660 | 211 // TODO(dzhioev): crbug/249660 |
213 image = ManagedUserCreationController::kDummyAvatarIndex; | 212 image = SupervisedUserCreationController::kDummyAvatarIndex; |
214 else | 213 else |
215 image = selected_image_; | 214 image = selected_image_; |
216 controller_->StartCreation(display_name, managed_user_password, image); | 215 controller_->StartCreation(display_name, supervised_user_password, image); |
217 } | 216 } |
218 | 217 |
219 void LocallyManagedUserCreationScreen::ImportManagedUser( | 218 void SupervisedUserCreationScreen::ImportSupervisedUser( |
220 const std::string& user_id) { | 219 const std::string& user_id) { |
221 DCHECK(controller_.get()); | 220 DCHECK(controller_.get()); |
222 DCHECK(existing_users_.get()); | 221 DCHECK(existing_users_.get()); |
223 VLOG(1) << "Importing user " << user_id; | 222 VLOG(1) << "Importing user " << user_id; |
224 base::DictionaryValue* user_info; | 223 base::DictionaryValue* user_info; |
225 if (!existing_users_->GetDictionary(user_id, &user_info)) { | 224 if (!existing_users_->GetDictionary(user_id, &user_info)) { |
226 LOG(ERROR) << "Can not import non-existing user " << user_id; | 225 LOG(ERROR) << "Can not import non-existing user " << user_id; |
227 return; | 226 return; |
228 } | 227 } |
229 base::string16 display_name; | 228 base::string16 display_name; |
230 std::string master_key; | 229 std::string master_key; |
231 std::string signature_key; | 230 std::string signature_key; |
232 std::string encryption_key; | 231 std::string encryption_key; |
233 std::string avatar; | 232 std::string avatar; |
234 bool exists; | 233 bool exists; |
235 int avatar_index = ManagedUserCreationController::kDummyAvatarIndex; | 234 int avatar_index = SupervisedUserCreationController::kDummyAvatarIndex; |
236 user_info->GetString(SupervisedUserSyncService::kName, &display_name); | 235 user_info->GetString(SupervisedUserSyncService::kName, &display_name); |
237 user_info->GetString(SupervisedUserSyncService::kMasterKey, &master_key); | 236 user_info->GetString(SupervisedUserSyncService::kMasterKey, &master_key); |
238 user_info->GetString(SupervisedUserSyncService::kPasswordSignatureKey, | 237 user_info->GetString(SupervisedUserSyncService::kPasswordSignatureKey, |
239 &signature_key); | 238 &signature_key); |
240 user_info->GetString(SupervisedUserSyncService::kPasswordEncryptionKey, | 239 user_info->GetString(SupervisedUserSyncService::kPasswordEncryptionKey, |
241 &encryption_key); | 240 &encryption_key); |
242 user_info->GetString(SupervisedUserSyncService::kChromeOsAvatar, &avatar); | 241 user_info->GetString(SupervisedUserSyncService::kChromeOsAvatar, &avatar); |
243 user_info->GetBoolean(kUserExists, &exists); | 242 user_info->GetBoolean(kUserExists, &exists); |
244 | 243 |
245 // We should not get here with existing user selected, so just display error. | 244 // We should not get here with existing user selected, so just display error. |
(...skipping 28 matching lines...) Expand all Loading... |
274 password_data, | 273 password_data, |
275 encryption_key, | 274 encryption_key, |
276 signature_key); | 275 signature_key); |
277 } else { | 276 } else { |
278 NOTREACHED() << " Oops, no password"; | 277 NOTREACHED() << " Oops, no password"; |
279 } | 278 } |
280 } | 279 } |
281 | 280 |
282 // TODO(antrim): Code duplication with previous method will be removed once | 281 // TODO(antrim): Code duplication with previous method will be removed once |
283 // password sync is implemented. | 282 // password sync is implemented. |
284 void LocallyManagedUserCreationScreen::ImportManagedUserWithPassword( | 283 void SupervisedUserCreationScreen::ImportSupervisedUserWithPassword( |
285 const std::string& user_id, | 284 const std::string& user_id, |
286 const std::string& password) { | 285 const std::string& password) { |
287 DCHECK(controller_.get()); | 286 DCHECK(controller_.get()); |
288 DCHECK(existing_users_.get()); | 287 DCHECK(existing_users_.get()); |
289 VLOG(1) << "Importing user " << user_id; | 288 VLOG(1) << "Importing user " << user_id; |
290 base::DictionaryValue* user_info; | 289 base::DictionaryValue* user_info; |
291 if (!existing_users_->GetDictionary(user_id, &user_info)) { | 290 if (!existing_users_->GetDictionary(user_id, &user_info)) { |
292 LOG(ERROR) << "Can not import non-existing user " << user_id; | 291 LOG(ERROR) << "Can not import non-existing user " << user_id; |
293 return; | 292 return; |
294 } | 293 } |
295 base::string16 display_name; | 294 base::string16 display_name; |
296 std::string master_key; | 295 std::string master_key; |
297 std::string avatar; | 296 std::string avatar; |
298 bool exists; | 297 bool exists; |
299 int avatar_index = ManagedUserCreationController::kDummyAvatarIndex; | 298 int avatar_index = SupervisedUserCreationController::kDummyAvatarIndex; |
300 user_info->GetString(SupervisedUserSyncService::kName, &display_name); | 299 user_info->GetString(SupervisedUserSyncService::kName, &display_name); |
301 user_info->GetString(SupervisedUserSyncService::kMasterKey, &master_key); | 300 user_info->GetString(SupervisedUserSyncService::kMasterKey, &master_key); |
302 user_info->GetString(SupervisedUserSyncService::kChromeOsAvatar, &avatar); | 301 user_info->GetString(SupervisedUserSyncService::kChromeOsAvatar, &avatar); |
303 user_info->GetBoolean(kUserExists, &exists); | 302 user_info->GetBoolean(kUserExists, &exists); |
304 | 303 |
305 // We should not get here with existing user selected, so just display error. | 304 // We should not get here with existing user selected, so just display error. |
306 if (exists) { | 305 if (exists) { |
307 actor_->ShowErrorPage( | 306 actor_->ShowErrorPage( |
308 l10n_util::GetStringUTF16( | 307 l10n_util::GetStringUTF16( |
309 IDS_CREATE_LOCALLY_MANAGED_USER_GENERIC_ERROR_TITLE), | 308 IDS_CREATE_LOCALLY_MANAGED_USER_GENERIC_ERROR_TITLE), |
310 l10n_util::GetStringUTF16( | 309 l10n_util::GetStringUTF16( |
311 IDS_CREATE_LOCALLY_MANAGED_USER_GENERIC_ERROR), | 310 IDS_CREATE_LOCALLY_MANAGED_USER_GENERIC_ERROR), |
312 l10n_util::GetStringUTF16( | 311 l10n_util::GetStringUTF16( |
313 IDS_CREATE_LOCALLY_MANAGED_USER_GENERIC_ERROR_BUTTON)); | 312 IDS_CREATE_LOCALLY_MANAGED_USER_GENERIC_ERROR_BUTTON)); |
314 return; | 313 return; |
315 } | 314 } |
316 | 315 |
317 SupervisedUserSyncService::GetAvatarIndex(avatar, &avatar_index); | 316 SupervisedUserSyncService::GetAvatarIndex(avatar, &avatar_index); |
318 | 317 |
319 controller_->StartImport(display_name, | 318 controller_->StartImport(display_name, |
320 password, | 319 password, |
321 avatar_index, | 320 avatar_index, |
322 user_id, | 321 user_id, |
323 master_key); | 322 master_key); |
324 } | 323 } |
325 | 324 |
326 void LocallyManagedUserCreationScreen::OnManagerLoginFailure() { | 325 void SupervisedUserCreationScreen::OnManagerLoginFailure() { |
327 if (actor_) | 326 if (actor_) |
328 actor_->ShowManagerPasswordError(); | 327 actor_->ShowManagerPasswordError(); |
329 } | 328 } |
330 | 329 |
331 void LocallyManagedUserCreationScreen::OnManagerFullyAuthenticated( | 330 void SupervisedUserCreationScreen::OnManagerFullyAuthenticated( |
332 Profile* manager_profile) { | 331 Profile* manager_profile) { |
333 DCHECK(controller_.get()); | 332 DCHECK(controller_.get()); |
334 // For manager user, move desktop to locked container so that windows created | 333 // For manager user, move desktop to locked container so that windows created |
335 // during the user image picker step are below it. | 334 // during the user image picker step are below it. |
336 ash::Shell::GetInstance()-> | 335 ash::Shell::GetInstance()-> |
337 desktop_background_controller()->MoveDesktopToLockedContainer(); | 336 desktop_background_controller()->MoveDesktopToLockedContainer(); |
338 | 337 |
339 controller_->SetManagerProfile(manager_profile); | 338 controller_->SetManagerProfile(manager_profile); |
340 if (actor_) | 339 if (actor_) |
341 actor_->ShowUsernamePage(); | 340 actor_->ShowUsernamePage(); |
342 | 341 |
343 last_page_ = kNameOfNewUserParametersScreen; | 342 last_page_ = kNameOfNewUserParametersScreen; |
344 CHECK(!sync_service_); | 343 CHECK(!sync_service_); |
345 sync_service_ = SupervisedUserSyncServiceFactory::GetForProfile( | 344 sync_service_ = SupervisedUserSyncServiceFactory::GetForProfile( |
346 manager_profile); | 345 manager_profile); |
347 sync_service_->AddObserver(this); | 346 sync_service_->AddObserver(this); |
348 OnSupervisedUsersChanged(); | 347 OnSupervisedUsersChanged(); |
349 } | 348 } |
350 | 349 |
351 void LocallyManagedUserCreationScreen::OnSupervisedUsersChanged() { | 350 void SupervisedUserCreationScreen::OnSupervisedUsersChanged() { |
352 CHECK(sync_service_); | 351 CHECK(sync_service_); |
353 sync_service_->GetSupervisedUsersAsync( | 352 sync_service_->GetSupervisedUsersAsync( |
354 base::Bind(&LocallyManagedUserCreationScreen::OnGetManagedUsers, | 353 base::Bind(&SupervisedUserCreationScreen::OnGetSupervisedUsers, |
355 weak_factory_.GetWeakPtr())); | 354 weak_factory_.GetWeakPtr())); |
356 } | 355 } |
357 | 356 |
358 void LocallyManagedUserCreationScreen::OnManagerCryptohomeAuthenticated() { | 357 void SupervisedUserCreationScreen::OnManagerCryptohomeAuthenticated() { |
359 if (actor_) { | 358 if (actor_) { |
360 actor_->ShowStatusMessage(true /* progress */, l10n_util::GetStringUTF16( | 359 actor_->ShowStatusMessage(true /* progress */, l10n_util::GetStringUTF16( |
361 IDS_CREATE_LOCALLY_MANAGED_USER_CREATION_AUTH_PROGRESS_MESSAGE)); | 360 IDS_CREATE_LOCALLY_MANAGED_USER_CREATION_AUTH_PROGRESS_MESSAGE)); |
362 } | 361 } |
363 } | 362 } |
364 | 363 |
365 void LocallyManagedUserCreationScreen::OnActorDestroyed( | 364 void SupervisedUserCreationScreen::OnActorDestroyed( |
366 LocallyManagedUserCreationScreenHandler* actor) { | 365 SupervisedUserCreationScreenHandler* actor) { |
367 if (actor_ == actor) | 366 if (actor_ == actor) |
368 actor_ = NULL; | 367 actor_ = NULL; |
369 } | 368 } |
370 | 369 |
371 void LocallyManagedUserCreationScreen::OnCreationError( | 370 void SupervisedUserCreationScreen::OnCreationError( |
372 ManagedUserCreationController::ErrorCode code) { | 371 SupervisedUserCreationController::ErrorCode code) { |
373 base::string16 title; | 372 base::string16 title; |
374 base::string16 message; | 373 base::string16 message; |
375 base::string16 button; | 374 base::string16 button; |
376 // TODO(antrim) : find out which errors do we really have. | 375 // TODO(antrim) : find out which errors do we really have. |
377 // We might reuse some error messages from ordinary user flow. | 376 // We might reuse some error messages from ordinary user flow. |
378 switch (code) { | 377 switch (code) { |
379 case ManagedUserCreationController::CRYPTOHOME_NO_MOUNT: | 378 case SupervisedUserCreationController::CRYPTOHOME_NO_MOUNT: |
380 case ManagedUserCreationController::CRYPTOHOME_FAILED_MOUNT: | 379 case SupervisedUserCreationController::CRYPTOHOME_FAILED_MOUNT: |
381 case ManagedUserCreationController::CRYPTOHOME_FAILED_TPM: | 380 case SupervisedUserCreationController::CRYPTOHOME_FAILED_TPM: |
382 title = l10n_util::GetStringUTF16( | 381 title = l10n_util::GetStringUTF16( |
383 IDS_CREATE_LOCALLY_MANAGED_USER_TPM_ERROR_TITLE); | 382 IDS_CREATE_LOCALLY_MANAGED_USER_TPM_ERROR_TITLE); |
384 message = l10n_util::GetStringUTF16( | 383 message = l10n_util::GetStringUTF16( |
385 IDS_CREATE_LOCALLY_MANAGED_USER_TPM_ERROR); | 384 IDS_CREATE_LOCALLY_MANAGED_USER_TPM_ERROR); |
386 button = l10n_util::GetStringUTF16( | 385 button = l10n_util::GetStringUTF16( |
387 IDS_CREATE_LOCALLY_MANAGED_USER_TPM_ERROR_BUTTON); | 386 IDS_CREATE_LOCALLY_MANAGED_USER_TPM_ERROR_BUTTON); |
388 break; | 387 break; |
389 case ManagedUserCreationController::CLOUD_SERVER_ERROR: | 388 case SupervisedUserCreationController::CLOUD_SERVER_ERROR: |
390 case ManagedUserCreationController::TOKEN_WRITE_FAILED: | 389 case SupervisedUserCreationController::TOKEN_WRITE_FAILED: |
391 title = l10n_util::GetStringUTF16( | 390 title = l10n_util::GetStringUTF16( |
392 IDS_CREATE_LOCALLY_MANAGED_USER_GENERIC_ERROR_TITLE); | 391 IDS_CREATE_LOCALLY_MANAGED_USER_GENERIC_ERROR_TITLE); |
393 message = l10n_util::GetStringUTF16( | 392 message = l10n_util::GetStringUTF16( |
394 IDS_CREATE_LOCALLY_MANAGED_USER_GENERIC_ERROR); | 393 IDS_CREATE_LOCALLY_MANAGED_USER_GENERIC_ERROR); |
395 button = l10n_util::GetStringUTF16( | 394 button = l10n_util::GetStringUTF16( |
396 IDS_CREATE_LOCALLY_MANAGED_USER_GENERIC_ERROR_BUTTON); | 395 IDS_CREATE_LOCALLY_MANAGED_USER_GENERIC_ERROR_BUTTON); |
397 break; | 396 break; |
398 case ManagedUserCreationController::NO_ERROR: | 397 case SupervisedUserCreationController::NO_ERROR: |
399 NOTREACHED(); | 398 NOTREACHED(); |
400 } | 399 } |
401 if (actor_) | 400 if (actor_) |
402 actor_->ShowErrorPage(title, message, button); | 401 actor_->ShowErrorPage(title, message, button); |
403 } | 402 } |
404 | 403 |
405 void LocallyManagedUserCreationScreen::OnCreationTimeout() { | 404 void SupervisedUserCreationScreen::OnCreationTimeout() { |
406 if (actor_) { | 405 if (actor_) { |
407 actor_->ShowStatusMessage(false /* error */, l10n_util::GetStringUTF16( | 406 actor_->ShowStatusMessage(false /* error */, l10n_util::GetStringUTF16( |
408 IDS_CREATE_LOCALLY_MANAGED_USER_CREATION_CREATION_TIMEOUT_MESSAGE)); | 407 IDS_CREATE_LOCALLY_MANAGED_USER_CREATION_CREATION_TIMEOUT_MESSAGE)); |
409 } | 408 } |
410 } | 409 } |
411 | 410 |
412 void LocallyManagedUserCreationScreen::OnLongCreationWarning() { | 411 void SupervisedUserCreationScreen::OnLongCreationWarning() { |
413 if (actor_) { | 412 if (actor_) { |
414 actor_->ShowStatusMessage(true /* progress */, l10n_util::GetStringUTF16( | 413 actor_->ShowStatusMessage(true /* progress */, l10n_util::GetStringUTF16( |
415 IDS_PROFILES_CREATE_SUPERVISED_JUST_SIGNED_IN)); | 414 IDS_PROFILES_CREATE_SUPERVISED_JUST_SIGNED_IN)); |
416 } | 415 } |
417 } | 416 } |
418 | 417 |
419 bool LocallyManagedUserCreationScreen::FindUserByDisplayName( | 418 bool SupervisedUserCreationScreen::FindUserByDisplayName( |
420 const base::string16& display_name, | 419 const base::string16& display_name, |
421 std::string *out_id) const { | 420 std::string *out_id) const { |
422 if (!existing_users_.get()) | 421 if (!existing_users_.get()) |
423 return false; | 422 return false; |
424 for (base::DictionaryValue::Iterator it(*existing_users_.get()); | 423 for (base::DictionaryValue::Iterator it(*existing_users_.get()); |
425 !it.IsAtEnd(); it.Advance()) { | 424 !it.IsAtEnd(); it.Advance()) { |
426 const base::DictionaryValue* user_info = | 425 const base::DictionaryValue* user_info = |
427 static_cast<const base::DictionaryValue*>(&it.value()); | 426 static_cast<const base::DictionaryValue*>(&it.value()); |
428 base::string16 user_display_name; | 427 base::string16 user_display_name; |
429 if (user_info->GetString(SupervisedUserSyncService::kName, | 428 if (user_info->GetString(SupervisedUserSyncService::kName, |
430 &user_display_name)) { | 429 &user_display_name)) { |
431 if (display_name == user_display_name) { | 430 if (display_name == user_display_name) { |
432 if (out_id) | 431 if (out_id) |
433 *out_id = it.key(); | 432 *out_id = it.key(); |
434 return true; | 433 return true; |
435 } | 434 } |
436 } | 435 } |
437 } | 436 } |
438 return false; | 437 return false; |
439 } | 438 } |
440 | 439 |
441 // TODO(antrim) : this is an explicit code duplications with UserImageScreen. | 440 // TODO(antrim) : this is an explicit code duplications with UserImageScreen. |
442 // It should be removed by issue 251179. | 441 // It should be removed by issue 251179. |
443 | 442 |
444 void LocallyManagedUserCreationScreen::ApplyPicture() { | 443 void SupervisedUserCreationScreen::ApplyPicture() { |
445 std::string user_id = controller_->GetManagedUserId(); | 444 std::string user_id = controller_->GetSupervisedUserId(); |
446 UserManager* user_manager = UserManager::Get(); | 445 UserManager* user_manager = UserManager::Get(); |
447 UserImageManager* image_manager = user_manager->GetUserImageManager(user_id); | 446 UserImageManager* image_manager = user_manager->GetUserImageManager(user_id); |
448 switch (selected_image_) { | 447 switch (selected_image_) { |
449 case User::kExternalImageIndex: | 448 case User::kExternalImageIndex: |
450 // Photo decoding may not have been finished yet. | 449 // Photo decoding may not have been finished yet. |
451 if (user_photo_.isNull()) { | 450 if (user_photo_.isNull()) { |
452 apply_photo_after_decoding_ = true; | 451 apply_photo_after_decoding_ = true; |
453 return; | 452 return; |
454 } | 453 } |
455 image_manager->SaveUserImage( | 454 image_manager->SaveUserImage( |
456 user_manager::UserImage::CreateAndEncode(user_photo_)); | 455 user_manager::UserImage::CreateAndEncode(user_photo_)); |
457 break; | 456 break; |
458 case User::kProfileImageIndex: | 457 case User::kProfileImageIndex: |
459 NOTREACHED() << "Supervised users have no profile pictures"; | 458 NOTREACHED() << "Supervised users have no profile pictures"; |
460 break; | 459 break; |
461 default: | 460 default: |
462 DCHECK(selected_image_ >= 0 && selected_image_ < kDefaultImagesCount); | 461 DCHECK(selected_image_ >= 0 && selected_image_ < kDefaultImagesCount); |
463 image_manager->SaveUserDefaultImageIndex(selected_image_); | 462 image_manager->SaveUserDefaultImageIndex(selected_image_); |
464 break; | 463 break; |
465 } | 464 } |
466 // Proceed to tutorial. | 465 // Proceed to tutorial. |
467 actor_->ShowTutorialPage(); | 466 actor_->ShowTutorialPage(); |
468 } | 467 } |
469 | 468 |
470 void LocallyManagedUserCreationScreen::OnCreationSuccess() { | 469 void SupervisedUserCreationScreen::OnCreationSuccess() { |
471 ApplyPicture(); | 470 ApplyPicture(); |
472 } | 471 } |
473 | 472 |
474 void LocallyManagedUserCreationScreen::OnCameraPresenceCheckDone( | 473 void SupervisedUserCreationScreen::OnCameraPresenceCheckDone( |
475 bool is_camera_present) { | 474 bool is_camera_present) { |
476 if (actor_) | 475 if (actor_) |
477 actor_->SetCameraPresent(is_camera_present); | 476 actor_->SetCameraPresent(is_camera_present); |
478 } | 477 } |
479 | 478 |
480 void LocallyManagedUserCreationScreen::OnGetManagedUsers( | 479 void SupervisedUserCreationScreen::OnGetSupervisedUsers( |
481 const base::DictionaryValue* users) { | 480 const base::DictionaryValue* users) { |
482 // Copy for passing to WebUI, contains only id, name and avatar URL. | 481 // Copy for passing to WebUI, contains only id, name and avatar URL. |
483 scoped_ptr<base::ListValue> ui_users(new base::ListValue()); | 482 scoped_ptr<base::ListValue> ui_users(new base::ListValue()); |
484 SupervisedUserManager* supervised_user_manager = | 483 SupervisedUserManager* supervised_user_manager = |
485 UserManager::Get()->GetSupervisedUserManager(); | 484 UserManager::Get()->GetSupervisedUserManager(); |
486 | 485 |
487 // Stored copy, contains all necessary information. | 486 // Stored copy, contains all necessary information. |
488 existing_users_.reset(new base::DictionaryValue()); | 487 existing_users_.reset(new base::DictionaryValue()); |
489 for (base::DictionaryValue::Iterator it(*users); !it.IsAtEnd(); | 488 for (base::DictionaryValue::Iterator it(*users); !it.IsAtEnd(); |
490 it.Advance()) { | 489 it.Advance()) { |
491 // Copy that would be stored in this class. | 490 // Copy that would be stored in this class. |
492 base::DictionaryValue* local_copy = | 491 base::DictionaryValue* local_copy = |
493 static_cast<base::DictionaryValue*>(it.value().DeepCopy()); | 492 static_cast<base::DictionaryValue*>(it.value().DeepCopy()); |
494 // Copy that would be passed to WebUI. It has some extra values for | 493 // Copy that would be passed to WebUI. It has some extra values for |
495 // displaying, but does not contain sensitive data, such as master password. | 494 // displaying, but does not contain sensitive data, such as master password. |
496 base::DictionaryValue* ui_copy = | 495 base::DictionaryValue* ui_copy = |
497 static_cast<base::DictionaryValue*>(new base::DictionaryValue()); | 496 static_cast<base::DictionaryValue*>(new base::DictionaryValue()); |
498 | 497 |
499 int avatar_index = ManagedUserCreationController::kDummyAvatarIndex; | 498 int avatar_index = SupervisedUserCreationController::kDummyAvatarIndex; |
500 std::string chromeos_avatar; | 499 std::string chromeos_avatar; |
501 if (local_copy->GetString(SupervisedUserSyncService::kChromeOsAvatar, | 500 if (local_copy->GetString(SupervisedUserSyncService::kChromeOsAvatar, |
502 &chromeos_avatar) && | 501 &chromeos_avatar) && |
503 !chromeos_avatar.empty() && | 502 !chromeos_avatar.empty() && |
504 SupervisedUserSyncService::GetAvatarIndex( | 503 SupervisedUserSyncService::GetAvatarIndex( |
505 chromeos_avatar, &avatar_index)) { | 504 chromeos_avatar, &avatar_index)) { |
506 ui_copy->SetString(kAvatarURLKey, GetDefaultImageUrl(avatar_index)); | 505 ui_copy->SetString(kAvatarURLKey, GetDefaultImageUrl(avatar_index)); |
507 } else { | 506 } else { |
508 int i = base::RandInt(kFirstDefaultImageIndex, kDefaultImagesCount - 1); | 507 int i = base::RandInt(kFirstDefaultImageIndex, kDefaultImagesCount - 1); |
509 local_copy->SetString( | 508 local_copy->SetString( |
(...skipping 27 matching lines...) Expand all Loading... |
537 local_copy->GetString(SupervisedUserSyncService::kPasswordSignatureKey, | 536 local_copy->GetString(SupervisedUserSyncService::kPasswordSignatureKey, |
538 &signature_key) && | 537 &signature_key) && |
539 !signature_key.empty(); | 538 !signature_key.empty(); |
540 | 539 |
541 ui_copy->SetBoolean(kUserNeedPassword, !has_password); | 540 ui_copy->SetBoolean(kUserNeedPassword, !has_password); |
542 ui_copy->SetString("id", it.key()); | 541 ui_copy->SetString("id", it.key()); |
543 | 542 |
544 existing_users_->Set(it.key(), local_copy); | 543 existing_users_->Set(it.key(), local_copy); |
545 ui_users->Append(ui_copy); | 544 ui_users->Append(ui_copy); |
546 } | 545 } |
547 actor_->ShowExistingManagedUsers(ui_users.get()); | 546 actor_->ShowExistingSupervisedUsers(ui_users.get()); |
548 } | 547 } |
549 | 548 |
550 void LocallyManagedUserCreationScreen::OnPhotoTaken( | 549 void SupervisedUserCreationScreen::OnPhotoTaken( |
551 const std::string& raw_data) { | 550 const std::string& raw_data) { |
552 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); | 551 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
553 user_photo_ = gfx::ImageSkia(); | 552 user_photo_ = gfx::ImageSkia(); |
554 if (image_decoder_.get()) | 553 if (image_decoder_.get()) |
555 image_decoder_->set_delegate(NULL); | 554 image_decoder_->set_delegate(NULL); |
556 image_decoder_ = new ImageDecoder(this, raw_data, | 555 image_decoder_ = new ImageDecoder(this, raw_data, |
557 ImageDecoder::DEFAULT_CODEC); | 556 ImageDecoder::DEFAULT_CODEC); |
558 scoped_refptr<base::MessageLoopProxy> task_runner = | 557 scoped_refptr<base::MessageLoopProxy> task_runner = |
559 content::BrowserThread::GetMessageLoopProxyForThread( | 558 content::BrowserThread::GetMessageLoopProxyForThread( |
560 content::BrowserThread::UI); | 559 content::BrowserThread::UI); |
561 image_decoder_->Start(task_runner); | 560 image_decoder_->Start(task_runner); |
562 } | 561 } |
563 | 562 |
564 void LocallyManagedUserCreationScreen::OnImageDecoded( | 563 void SupervisedUserCreationScreen::OnImageDecoded( |
565 const ImageDecoder* decoder, | 564 const ImageDecoder* decoder, |
566 const SkBitmap& decoded_image) { | 565 const SkBitmap& decoded_image) { |
567 DCHECK_EQ(image_decoder_.get(), decoder); | 566 DCHECK_EQ(image_decoder_.get(), decoder); |
568 user_photo_ = gfx::ImageSkia::CreateFrom1xBitmap(decoded_image); | 567 user_photo_ = gfx::ImageSkia::CreateFrom1xBitmap(decoded_image); |
569 if (apply_photo_after_decoding_) | 568 if (apply_photo_after_decoding_) |
570 ApplyPicture(); | 569 ApplyPicture(); |
571 } | 570 } |
572 | 571 |
573 void LocallyManagedUserCreationScreen::OnDecodeImageFailed( | 572 void SupervisedUserCreationScreen::OnDecodeImageFailed( |
574 const ImageDecoder* decoder) { | 573 const ImageDecoder* decoder) { |
575 NOTREACHED() << "Failed to decode PNG image from WebUI"; | 574 NOTREACHED() << "Failed to decode PNG image from WebUI"; |
576 } | 575 } |
577 | 576 |
578 void LocallyManagedUserCreationScreen::OnImageSelected( | 577 void SupervisedUserCreationScreen::OnImageSelected( |
579 const std::string& image_type, | 578 const std::string& image_type, |
580 const std::string& image_url) { | 579 const std::string& image_url) { |
581 if (image_url.empty()) | 580 if (image_url.empty()) |
582 return; | 581 return; |
583 int user_image_index = User::kInvalidImageIndex; | 582 int user_image_index = User::kInvalidImageIndex; |
584 if (image_type == "default" && | 583 if (image_type == "default" && |
585 IsDefaultImageUrl(image_url, &user_image_index)) { | 584 IsDefaultImageUrl(image_url, &user_image_index)) { |
586 selected_image_ = user_image_index; | 585 selected_image_ = user_image_index; |
587 } else if (image_type == "camera") { | 586 } else if (image_type == "camera") { |
588 selected_image_ = User::kExternalImageIndex; | 587 selected_image_ = User::kExternalImageIndex; |
589 } else { | 588 } else { |
590 NOTREACHED() << "Unexpected image type: " << image_type; | 589 NOTREACHED() << "Unexpected image type: " << image_type; |
591 } | 590 } |
592 } | 591 } |
593 | 592 |
594 void LocallyManagedUserCreationScreen::OnImageAccepted() { | 593 void SupervisedUserCreationScreen::OnImageAccepted() { |
595 } | 594 } |
596 | 595 |
597 } // namespace chromeos | 596 } // namespace chromeos |
OLD | NEW |