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

Side by Side Diff: chrome/browser/ui/webui/options/create_profile_handler.cc

Issue 1165323004: We should use UserID object to identify users instead of username. Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 6 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 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/ui/webui/options/create_profile_handler.h" 5 #include "chrome/browser/ui/webui/options/create_profile_handler.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/files/file_path.h" 8 #include "base/files/file_path.h"
9 #include "base/metrics/histogram.h" 9 #include "base/metrics/histogram.h"
10 #include "base/prefs/pref_service.h" 10 #include "base/prefs/pref_service.h"
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 profile_creation_start_time_ = base::TimeTicks::Now(); 86 profile_creation_start_time_ = base::TimeTicks::Now();
87 87
88 base::string16 name; 88 base::string16 name;
89 base::string16 icon; 89 base::string16 icon;
90 bool create_shortcut = false; 90 bool create_shortcut = false;
91 if (args->GetString(0, &name) && args->GetString(1, &icon)) { 91 if (args->GetString(0, &name) && args->GetString(1, &icon)) {
92 base::TrimWhitespace(name, base::TRIM_ALL, &name); 92 base::TrimWhitespace(name, base::TRIM_ALL, &name);
93 CHECK(!name.empty()); 93 CHECK(!name.empty());
94 args->GetBoolean(2, &create_shortcut); 94 args->GetBoolean(2, &create_shortcut);
95 } 95 }
96 std::string supervised_user_id; 96 user_manager::UserID supervised_user_id = user_manager::UserID(std::string(), std::string());
97 #if defined(ENABLE_SUPERVISED_USERS) 97 #if defined(ENABLE_SUPERVISED_USERS)
98 if (!ProcessSupervisedCreateProfileArgs(args, &supervised_user_id)) 98 if (!ProcessSupervisedCreateProfileArgs(args, &supervised_user_id))
99 return; 99 return;
100 #endif 100 #endif
101 101
102 ProfileMetrics::LogProfileAddNewUser(ProfileMetrics::ADD_NEW_USER_DIALOG); 102 ProfileMetrics::LogProfileAddNewUser(ProfileMetrics::ADD_NEW_USER_DIALOG);
103 103
104 profile_path_being_created_ = ProfileManager::CreateMultiProfileAsync( 104 profile_path_being_created_ = ProfileManager::CreateMultiProfileAsync(
105 name, icon, 105 name, icon,
106 base::Bind(&CreateProfileHandler::OnProfileCreated, 106 base::Bind(&CreateProfileHandler::OnProfileCreated,
107 weak_ptr_factory_.GetWeakPtr(), 107 weak_ptr_factory_.GetWeakPtr(),
108 create_shortcut, 108 create_shortcut,
109 helper::GetDesktopType(web_ui()), 109 helper::GetDesktopType(web_ui()),
110 supervised_user_id), 110 supervised_user_id),
111 supervised_user_id); 111 supervised_user_id);
112 } 112 }
113 113
114 void CreateProfileHandler::OnProfileCreated( 114 void CreateProfileHandler::OnProfileCreated(
115 bool create_shortcut, 115 bool create_shortcut,
116 chrome::HostDesktopType desktop_type, 116 chrome::HostDesktopType desktop_type,
117 const std::string& supervised_user_id, 117 const user_manager::UserID& supervised_user_id,
118 Profile* profile, 118 Profile* profile,
119 Profile::CreateStatus status) { 119 Profile::CreateStatus status) {
120 if (status != Profile::CREATE_STATUS_CREATED) 120 if (status != Profile::CREATE_STATUS_CREATED)
121 RecordProfileCreationMetrics(status); 121 RecordProfileCreationMetrics(status);
122 122
123 switch (status) { 123 switch (status) {
124 case Profile::CREATE_STATUS_LOCAL_FAIL: { 124 case Profile::CREATE_STATUS_LOCAL_FAIL: {
125 ShowProfileCreationError(profile, GetProfileCreationErrorMessageLocal()); 125 ShowProfileCreationError(profile, GetProfileCreationErrorMessageLocal());
126 break; 126 break;
127 } 127 }
(...skipping 15 matching lines...) Expand all
143 case Profile::MAX_CREATE_STATUS: { 143 case Profile::MAX_CREATE_STATUS: {
144 NOTREACHED(); 144 NOTREACHED();
145 break; 145 break;
146 } 146 }
147 } 147 }
148 } 148 }
149 149
150 void CreateProfileHandler::HandleProfileCreationSuccess( 150 void CreateProfileHandler::HandleProfileCreationSuccess(
151 bool create_shortcut, 151 bool create_shortcut,
152 chrome::HostDesktopType desktop_type, 152 chrome::HostDesktopType desktop_type,
153 const std::string& supervised_user_id, 153 const user_manager::UserID& supervised_user_id,
154 Profile* profile) { 154 Profile* profile) {
155 switch (profile_creation_type_) { 155 switch (profile_creation_type_) {
156 case NON_SUPERVISED_PROFILE_CREATION: { 156 case NON_SUPERVISED_PROFILE_CREATION: {
157 DCHECK(supervised_user_id.empty()); 157 DCHECK(supervised_user_id.empty());
158 CreateShortcutAndShowSuccess(create_shortcut, desktop_type, profile); 158 CreateShortcutAndShowSuccess(create_shortcut, desktop_type, profile);
159 break; 159 break;
160 } 160 }
161 #if defined(ENABLE_SUPERVISED_USERS) 161 #if defined(ENABLE_SUPERVISED_USERS)
162 case SUPERVISED_PROFILE_CREATION: 162 case SUPERVISED_PROFILE_CREATION:
163 case SUPERVISED_PROFILE_IMPORT: 163 case SUPERVISED_PROFILE_IMPORT:
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
295 } 295 }
296 break; 296 break;
297 } 297 }
298 298
299 NOTREACHED(); 299 NOTREACHED();
300 return std::string(); 300 return std::string();
301 } 301 }
302 302
303 #if defined(ENABLE_SUPERVISED_USERS) 303 #if defined(ENABLE_SUPERVISED_USERS)
304 bool CreateProfileHandler::ProcessSupervisedCreateProfileArgs( 304 bool CreateProfileHandler::ProcessSupervisedCreateProfileArgs(
305 const base::ListValue* args, std::string* supervised_user_id) { 305 const base::ListValue* args, user_manager::UserID* supervised_user_id) {
306 bool supervised_user = false; 306 bool supervised_user = false;
307 if (args->GetSize() >= 5) { 307 if (args->GetSize() >= 5) {
308 bool success = args->GetBoolean(3, &supervised_user); 308 bool success = args->GetBoolean(3, &supervised_user);
309 DCHECK(success); 309 DCHECK(success);
310 310
311 success = args->GetString(4, supervised_user_id); 311 std::string supervised_user_email;
312 success = args->GetString(4, &supervised_user_email);
312 DCHECK(success); 313 DCHECK(success);
314 *(supervised_user_id) = user_manager::UserID::FromUserEmail(supervised_use r_email);
313 } 315 }
314 316
315 if (supervised_user) { 317 if (supervised_user) {
316 if (!IsValidExistingSupervisedUserId(*supervised_user_id)) 318 if (!IsValidExistingSupervisedUserId(*supervised_user_id))
317 return false; 319 return false;
318 320
319 profile_creation_type_ = SUPERVISED_PROFILE_IMPORT; 321 profile_creation_type_ = SUPERVISED_PROFILE_IMPORT;
320 if (supervised_user_id->empty()) { 322 if (supervised_user_id->empty()) {
321 profile_creation_type_ = SUPERVISED_PROFILE_CREATION; 323 profile_creation_type_ = SUPERVISED_PROFILE_CREATION;
322 *supervised_user_id = 324 *supervised_user_id =
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
371 373
372 // Cancelling registration means the callback passed into 374 // Cancelling registration means the callback passed into
373 // RegisterAndInitSync() won't be called, so the cleanup must be done here. 375 // RegisterAndInitSync() won't be called, so the cleanup must be done here.
374 profile_path_being_created_.clear(); 376 profile_path_being_created_.clear();
375 helper::DeleteProfileAtPath(new_profile->GetPath(), web_ui()); 377 helper::DeleteProfileAtPath(new_profile->GetPath(), web_ui());
376 } 378 }
377 379
378 void CreateProfileHandler::RegisterSupervisedUser( 380 void CreateProfileHandler::RegisterSupervisedUser(
379 bool create_shortcut, 381 bool create_shortcut,
380 chrome::HostDesktopType desktop_type, 382 chrome::HostDesktopType desktop_type,
381 const std::string& supervised_user_id, 383 const user_manager::UserID& supervised_user_id,
382 Profile* new_profile) { 384 Profile* new_profile) {
383 DCHECK_EQ(profile_path_being_created_.value(), 385 DCHECK_EQ(profile_path_being_created_.value(),
384 new_profile->GetPath().value()); 386 new_profile->GetPath().value());
385 387
386 SupervisedUserService* supervised_user_service = 388 SupervisedUserService* supervised_user_service =
387 SupervisedUserServiceFactory::GetForProfile(new_profile); 389 SupervisedUserServiceFactory::GetForProfile(new_profile);
388 390
389 // Register the supervised user using the profile of the custodian. 391 // Register the supervised user using the profile of the custodian.
390 supervised_user_registration_utility_ = 392 supervised_user_registration_utility_ =
391 SupervisedUserRegistrationUtility::Create(Profile::FromWebUI(web_ui())); 393 SupervisedUserRegistrationUtility::Create(Profile::FromWebUI(web_ui()));
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
445 UMA_HISTOGRAM_ENUMERATION("Profile.SupervisedProfileImportError", 447 UMA_HISTOGRAM_ENUMERATION("Profile.SupervisedProfileImportError",
446 error_state, 448 error_state,
447 GoogleServiceAuthError::NUM_STATES); 449 GoogleServiceAuthError::NUM_STATES);
448 UMA_HISTOGRAM_MEDIUM_TIMES( 450 UMA_HISTOGRAM_MEDIUM_TIMES(
449 "Profile.SupervisedProfileTotalImportTime", 451 "Profile.SupervisedProfileTotalImportTime",
450 base::TimeTicks::Now() - profile_creation_start_time_); 452 base::TimeTicks::Now() - profile_creation_start_time_);
451 } 453 }
452 } 454 }
453 455
454 bool CreateProfileHandler::IsValidExistingSupervisedUserId( 456 bool CreateProfileHandler::IsValidExistingSupervisedUserId(
455 const std::string& existing_supervised_user_id) const { 457 const user_manager::UserID& existing_supervised_user_id) const {
456 if (existing_supervised_user_id.empty()) 458 if (existing_supervised_user_id.empty())
457 return true; 459 return true;
458 460
459 Profile* profile = Profile::FromWebUI(web_ui()); 461 Profile* profile = Profile::FromWebUI(web_ui());
460 const base::DictionaryValue* dict = 462 const base::DictionaryValue* dict =
461 SupervisedUserSyncServiceFactory::GetForProfile(profile)-> 463 SupervisedUserSyncServiceFactory::GetForProfile(profile)->
462 GetSupervisedUsers(); 464 GetSupervisedUsers();
463 if (!dict->HasKey(existing_supervised_user_id)) 465 if (!dict->HasKey(existing_supervised_user_id.GetUserEmail()))
464 return false; 466 return false;
465 467
466 // Check if this supervised user already exists on this machine. 468 // Check if this supervised user already exists on this machine.
467 const ProfileInfoCache& cache = 469 const ProfileInfoCache& cache =
468 g_browser_process->profile_manager()->GetProfileInfoCache(); 470 g_browser_process->profile_manager()->GetProfileInfoCache();
469 for (size_t i = 0; i < cache.GetNumberOfProfiles(); ++i) { 471 for (size_t i = 0; i < cache.GetNumberOfProfiles(); ++i) {
470 if (existing_supervised_user_id == 472 if (existing_supervised_user_id ==
471 cache.GetSupervisedUserIdOfProfileAtIndex(i)) 473 cache.GetSupervisedUserIdOfProfileAtIndex(i))
472 return false; 474 return false;
473 } 475 }
474 return true; 476 return true;
475 } 477 }
476 #endif 478 #endif
477 479
478 } // namespace options 480 } // namespace options
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698