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

Side by Side Diff: chrome/browser/ui/webui/signin/user_manager_screen_handler.cc

Issue 788993006: Clean up references to the "active user" in the User Manager. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 11 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/signin/user_manager_screen_handler.h" 5 #include "chrome/browser/ui/webui/signin/user_manager_screen_handler.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/prefs/pref_service.h" 8 #include "base/prefs/pref_service.h"
9 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
10 #include "base/value_conversions.h" 10 #include "base/value_conversions.h"
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
47 47
48 namespace { 48 namespace {
49 // User dictionary keys. 49 // User dictionary keys.
50 const char kKeyUsername[] = "username"; 50 const char kKeyUsername[] = "username";
51 const char kKeyDisplayName[]= "displayName"; 51 const char kKeyDisplayName[]= "displayName";
52 const char kKeyEmailAddress[] = "emailAddress"; 52 const char kKeyEmailAddress[] = "emailAddress";
53 const char kKeyProfilePath[] = "profilePath"; 53 const char kKeyProfilePath[] = "profilePath";
54 const char kKeyPublicAccount[] = "publicAccount"; 54 const char kKeyPublicAccount[] = "publicAccount";
55 const char kKeySupervisedUser[] = "supervisedUser"; 55 const char kKeySupervisedUser[] = "supervisedUser";
56 const char kKeyChildUser[] = "childUser"; 56 const char kKeyChildUser[] = "childUser";
57 const char kKeySignedIn[] = "signedIn";
58 const char kKeyCanRemove[] = "canRemove"; 57 const char kKeyCanRemove[] = "canRemove";
59 const char kKeyIsOwner[] = "isOwner"; 58 const char kKeyIsOwner[] = "isOwner";
60 const char kKeyIsDesktop[] = "isDesktopUser"; 59 const char kKeyIsDesktop[] = "isDesktopUser";
61 const char kKeyAvatarUrl[] = "userImage"; 60 const char kKeyAvatarUrl[] = "userImage";
62 const char kKeyNeedsSignin[] = "needsSignin"; 61 const char kKeyNeedsSignin[] = "needsSignin";
63 62
64 // JS API callback names. 63 // JS API callback names.
65 const char kJsApiUserManagerInitialize[] = "userManagerInitialize"; 64 const char kJsApiUserManagerInitialize[] = "userManagerInitialize";
66 const char kJsApiUserManagerAddUser[] = "addUser"; 65 const char kJsApiUserManagerAddUser[] = "addUser";
67 const char kJsApiUserManagerAuthLaunchUser[] = "authenticatedLaunchUser"; 66 const char kJsApiUserManagerAuthLaunchUser[] = "authenticatedLaunchUser";
(...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after
370 void UserManagerScreenHandler::HandleRemoveUser(const base::ListValue* args) { 369 void UserManagerScreenHandler::HandleRemoveUser(const base::ListValue* args) {
371 DCHECK(args); 370 DCHECK(args);
372 const base::Value* profile_path_value; 371 const base::Value* profile_path_value;
373 if (!args->Get(0, &profile_path_value)) 372 if (!args->Get(0, &profile_path_value))
374 return; 373 return;
375 374
376 base::FilePath profile_path; 375 base::FilePath profile_path;
377 if (!base::GetValueAsFilePath(*profile_path_value, &profile_path)) 376 if (!base::GetValueAsFilePath(*profile_path_value, &profile_path))
378 return; 377 return;
379 378
380 // This handler could have been called for a supervised user, for example
381 // because the user fiddled with the web inspector. Silently return in this
382 // case.
383 if (Profile::FromWebUI(web_ui())->IsSupervised())
384 return;
385
386 if (!profiles::IsMultipleProfilesEnabled()) 379 if (!profiles::IsMultipleProfilesEnabled())
387 return; 380 return;
388 381
389 g_browser_process->profile_manager()->ScheduleProfileForDeletion( 382 g_browser_process->profile_manager()->ScheduleProfileForDeletion(
390 profile_path, 383 profile_path,
391 base::Bind(&OpenNewWindowForProfile, desktop_type_)); 384 base::Bind(&OpenNewWindowForProfile, desktop_type_));
392 ProfileMetrics::LogProfileDeleteUser( 385 ProfileMetrics::LogProfileDeleteUser(
393 ProfileMetrics::DELETE_PROFILE_USER_MANAGER); 386 ProfileMetrics::DELETE_PROFILE_USER_MANAGER);
394 } 387 }
395 388
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after
636 localized_strings->SetString("multiProfilesNotAllowedPolicyMsg", 629 localized_strings->SetString("multiProfilesNotAllowedPolicyMsg",
637 base::string16()); 630 base::string16());
638 localized_strings->SetString("multiProfilesPrimaryOnlyPolicyMsg", 631 localized_strings->SetString("multiProfilesPrimaryOnlyPolicyMsg",
639 base::string16()); 632 base::string16());
640 localized_strings->SetString("multiProfilesOwnerPrimaryOnlyMsg", 633 localized_strings->SetString("multiProfilesOwnerPrimaryOnlyMsg",
641 base::string16()); 634 base::string16());
642 } 635 }
643 636
644 void UserManagerScreenHandler::SendUserList() { 637 void UserManagerScreenHandler::SendUserList() {
645 base::ListValue users_list; 638 base::ListValue users_list;
646 base::FilePath active_profile_path =
647 web_ui()->GetWebContents()->GetBrowserContext()->GetPath();
648 const ProfileInfoCache& info_cache = 639 const ProfileInfoCache& info_cache =
649 g_browser_process->profile_manager()->GetProfileInfoCache(); 640 g_browser_process->profile_manager()->GetProfileInfoCache();
650 641
651 user_auth_type_map_.clear(); 642 user_auth_type_map_.clear();
652 643
653 // If the active user is a supervised user, then they may not perform
654 // certain actions (i.e. delete another user).
655 bool active_user_is_supervised = Profile::FromWebUI(web_ui())->IsSupervised();
656 for (size_t i = 0; i < info_cache.GetNumberOfProfiles(); ++i) { 644 for (size_t i = 0; i < info_cache.GetNumberOfProfiles(); ++i) {
657 base::DictionaryValue* profile_value = new base::DictionaryValue(); 645 base::DictionaryValue* profile_value = new base::DictionaryValue();
658
659 base::FilePath profile_path = info_cache.GetPathOfProfileAtIndex(i); 646 base::FilePath profile_path = info_cache.GetPathOfProfileAtIndex(i);
660 bool is_active_user = (profile_path == active_profile_path);
661 647
662 profile_value->SetString( 648 profile_value->SetString(
663 kKeyUsername, info_cache.GetUserNameOfProfileAtIndex(i)); 649 kKeyUsername, info_cache.GetUserNameOfProfileAtIndex(i));
664 profile_value->SetString( 650 profile_value->SetString(
665 kKeyEmailAddress, info_cache.GetUserNameOfProfileAtIndex(i)); 651 kKeyEmailAddress, info_cache.GetUserNameOfProfileAtIndex(i));
666 // The profiles displayed in the User Manager are never guest profiles.
667 profile_value->SetString( 652 profile_value->SetString(
668 kKeyDisplayName, 653 kKeyDisplayName,
669 profiles::GetAvatarNameForProfile(profile_path)); 654 profiles::GetAvatarNameForProfile(profile_path));
670 profile_value->SetString(kKeyProfilePath, profile_path.MaybeAsASCII()); 655 profile_value->SetString(kKeyProfilePath, profile_path.MaybeAsASCII());
671 profile_value->SetBoolean(kKeyPublicAccount, false); 656 profile_value->SetBoolean(kKeyPublicAccount, false);
672 profile_value->SetBoolean( 657 profile_value->SetBoolean(
673 kKeySupervisedUser, info_cache.ProfileIsSupervisedAtIndex(i)); 658 kKeySupervisedUser, info_cache.ProfileIsSupervisedAtIndex(i));
674 profile_value->SetBoolean( 659 profile_value->SetBoolean(
675 kKeyChildUser, info_cache.ProfileIsChildAtIndex(i)); 660 kKeyChildUser, info_cache.ProfileIsChildAtIndex(i));
676 profile_value->SetBoolean(kKeySignedIn, is_active_user);
677 profile_value->SetBoolean( 661 profile_value->SetBoolean(
678 kKeyNeedsSignin, info_cache.ProfileIsSigninRequiredAtIndex(i)); 662 kKeyNeedsSignin, info_cache.ProfileIsSigninRequiredAtIndex(i));
679 profile_value->SetBoolean(kKeyIsOwner, false); 663 profile_value->SetBoolean(kKeyIsOwner, false);
680 profile_value->SetBoolean(kKeyCanRemove, !active_user_is_supervised); 664 profile_value->SetBoolean(kKeyCanRemove, true);
681 profile_value->SetBoolean(kKeyIsDesktop, true); 665 profile_value->SetBoolean(kKeyIsDesktop, true);
682 profile_value->SetString( 666 profile_value->SetString(
683 kKeyAvatarUrl, GetAvatarImageAtIndex(i, info_cache)); 667 kKeyAvatarUrl, GetAvatarImageAtIndex(i, info_cache));
684 668
685 // The row of user pods should display the active user first. 669 users_list.Append(profile_value);
686 if (is_active_user)
687 users_list.Insert(0, profile_value);
688 else
689 users_list.Append(profile_value);
690 } 670 }
691 671
692 web_ui()->CallJavascriptFunction("login.AccountPickerScreen.loadUsers", 672 web_ui()->CallJavascriptFunction("login.AccountPickerScreen.loadUsers",
693 users_list, base::FundamentalValue(IsGuestModeEnabled())); 673 users_list, base::FundamentalValue(IsGuestModeEnabled()));
694 } 674 }
695 675
696 void UserManagerScreenHandler::ReportAuthenticationResult( 676 void UserManagerScreenHandler::ReportAuthenticationResult(
697 bool success, 677 bool success,
698 ProfileMetrics::ProfileAuth auth) { 678 ProfileMetrics::ProfileAuth auth) {
699 ProfileMetrics::LogProfileAuthResult(auth); 679 ProfileMetrics::LogProfileAuthResult(auth);
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
782 Profile* profile, Profile::CreateStatus profile_create_status) { 762 Profile* profile, Profile::CreateStatus profile_create_status) {
783 Browser* browser = chrome::FindAnyBrowser(profile, false, desktop_type_); 763 Browser* browser = chrome::FindAnyBrowser(profile, false, desktop_type_);
784 if (browser && browser->window()) { 764 if (browser && browser->window()) {
785 OnBrowserWindowReady(browser); 765 OnBrowserWindowReady(browser);
786 } else { 766 } else {
787 registrar_.Add(this, 767 registrar_.Add(this,
788 chrome::NOTIFICATION_BROWSER_WINDOW_READY, 768 chrome::NOTIFICATION_BROWSER_WINDOW_READY,
789 content::NotificationService::AllSources()); 769 content::NotificationService::AllSources());
790 } 770 }
791 } 771 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698