Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(14)

Side by Side Diff: chrome/browser/chromeos/login/supervised/supervised_user_creation_screen.cc

Issue 393343002: Rename "managed (mode|user)" to "supervised user" (part 7) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: more alphabetize (and rebase again) Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698