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

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

Issue 125993002: Add error handling for supervised user import flow. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Move ManagedUserListData to its own file. Created 6 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 | Annotate | Revision Log
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/managed_user_import_handler.h" 5 #include "chrome/browser/ui/webui/options/managed_user_import_handler.h"
6 6
7 #include <set> 7 #include <set>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/prefs/pref_service.h" 10 #include "base/prefs/pref_service.h"
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 52
53 void ManagedUserImportHandler::GetLocalizedValues( 53 void ManagedUserImportHandler::GetLocalizedValues(
54 base::DictionaryValue* localized_strings) { 54 base::DictionaryValue* localized_strings) {
55 DCHECK(localized_strings); 55 DCHECK(localized_strings);
56 56
57 static OptionsStringResource resources[] = { 57 static OptionsStringResource resources[] = {
58 { "managedUserImportTitle", IDS_IMPORT_EXISTING_MANAGED_USER_TITLE }, 58 { "managedUserImportTitle", IDS_IMPORT_EXISTING_MANAGED_USER_TITLE },
59 { "managedUserImportText", IDS_IMPORT_EXISTING_MANAGED_USER_TEXT }, 59 { "managedUserImportText", IDS_IMPORT_EXISTING_MANAGED_USER_TEXT },
60 { "createNewUserLink", IDS_CREATE_NEW_USER_LINK }, 60 { "createNewUserLink", IDS_CREATE_NEW_USER_LINK },
61 { "managedUserImportOk", IDS_IMPORT_EXISTING_MANAGED_USER_OK }, 61 { "managedUserImportOk", IDS_IMPORT_EXISTING_MANAGED_USER_OK },
62 { "managedUserImportSigninError", IDS_MANAGED_USER_IMPORT_SIGN_IN_ERROR },
62 { "managedUserAlreadyOnThisDevice", 63 { "managedUserAlreadyOnThisDevice",
63 IDS_MANAGED_USER_ALREADY_ON_THIS_DEVICE }, 64 IDS_MANAGED_USER_ALREADY_ON_THIS_DEVICE },
64 { "noExistingManagedUsers", IDS_MANAGED_USER_NO_EXISTING_ERROR }, 65 { "noExistingManagedUsers", IDS_MANAGED_USER_NO_EXISTING_ERROR },
65 { "managedUserSelectAvatarTitle", IDS_MANAGED_USER_SELECT_AVATAR_TITLE }, 66 { "managedUserSelectAvatarTitle", IDS_MANAGED_USER_SELECT_AVATAR_TITLE },
66 { "managedUserSelectAvatarText", IDS_MANAGED_USER_SELECT_AVATAR_TEXT }, 67 { "managedUserSelectAvatarText", IDS_MANAGED_USER_SELECT_AVATAR_TEXT },
67 { "managedUserSelectAvatarOk", IDS_MANAGED_USER_SELECT_AVATAR_OK }, 68 { "managedUserSelectAvatarOk", IDS_MANAGED_USER_SELECT_AVATAR_OK },
68 }; 69 };
69 70
70 RegisterStrings(localized_strings, resources, arraysize(resources)); 71 RegisterStrings(localized_strings, resources, arraysize(resources));
71 localized_strings->Set("avatarIcons", GetAvatarIcons().release()); 72 localized_strings->Set("avatarIcons", GetAvatarIcons().release());
(...skipping 28 matching lines...) Expand all
100 } 101 }
101 102
102 void ManagedUserImportHandler::RequestManagedUserImportUpdate( 103 void ManagedUserImportHandler::RequestManagedUserImportUpdate(
103 const base::ListValue* /* args */) { 104 const base::ListValue* /* args */) {
104 if (Profile::FromWebUI(web_ui())->IsManaged()) 105 if (Profile::FromWebUI(web_ui())->IsManaged())
105 return; 106 return;
106 107
107 if (!IsAccountConnected() || HasAuthError()) { 108 if (!IsAccountConnected() || HasAuthError()) {
108 ClearManagedUsersAndShowError(); 109 ClearManagedUsersAndShowError();
109 } else { 110 } else {
110 // Account connected and no sign-in errors, then hide
111 // any error messages and send the managed users to update
112 // the managed user list.
113 web_ui()->CallJavascriptFunction(
114 "ManagedUserImportOverlay.hideErrorBubble");
115
116 ManagedUserSyncService* managed_user_sync_service = 111 ManagedUserSyncService* managed_user_sync_service =
117 ManagedUserSyncServiceFactory::GetForProfile( 112 ManagedUserSyncServiceFactory::GetForProfile(
118 Profile::FromWebUI(web_ui())); 113 Profile::FromWebUI(web_ui()));
119 managed_user_sync_service->GetManagedUsersAsync( 114 managed_user_sync_service->GetManagedUsersAsync(
120 base::Bind(&ManagedUserImportHandler::SendExistingManagedUsers, 115 base::Bind(&ManagedUserImportHandler::SendExistingManagedUsers,
121 weak_ptr_factory_.GetWeakPtr())); 116 weak_ptr_factory_.GetWeakPtr()));
122 } 117 }
123 } 118 }
124 119
125 void ManagedUserImportHandler::SendExistingManagedUsers( 120 void ManagedUserImportHandler::SendExistingManagedUsers(
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
160 ProfileInfoCache::GetDefaultAvatarIconUrl(avatar_index); 155 ProfileInfoCache::GetDefaultAvatarIconUrl(avatar_index);
161 managed_user->SetString("iconURL", avatar_url); 156 managed_user->SetString("iconURL", avatar_url);
162 bool on_current_device = 157 bool on_current_device =
163 managed_user_ids.find(it.key()) != managed_user_ids.end(); 158 managed_user_ids.find(it.key()) != managed_user_ids.end();
164 managed_user->SetBoolean("onCurrentDevice", on_current_device); 159 managed_user->SetBoolean("onCurrentDevice", on_current_device);
165 160
166 managed_users.Append(managed_user); 161 managed_users.Append(managed_user);
167 } 162 }
168 163
169 web_ui()->CallJavascriptFunction( 164 web_ui()->CallJavascriptFunction(
170 "ManagedUserImportOverlay.receiveExistingManagedUsers", 165 "options.ManagedUserListData.receiveExistingManagedUsers",
171 managed_users); 166 managed_users);
172 } 167 }
173 168
174 void ManagedUserImportHandler::ClearManagedUsersAndShowError() { 169 void ManagedUserImportHandler::ClearManagedUsersAndShowError() {
175 web_ui()->CallJavascriptFunction( 170 web_ui()->CallJavascriptFunction("options.ManagedUserListData.onSigninError");
176 "ManagedUserImportOverlay.receiveExistingManagedUsers");
177 base::string16 error_message =
178 l10n_util::GetStringUTF16(IDS_MANAGED_USER_IMPORT_SIGN_IN_ERROR);
179 web_ui()->CallJavascriptFunction("ManagedUserImportOverlay.onError",
180 base::StringValue(error_message));
181 } 171 }
182 172
183 bool ManagedUserImportHandler::IsAccountConnected() const { 173 bool ManagedUserImportHandler::IsAccountConnected() const {
184 Profile* profile = Profile::FromWebUI(web_ui()); 174 Profile* profile = Profile::FromWebUI(web_ui());
185 SigninManagerBase* signin_manager = 175 SigninManagerBase* signin_manager =
186 SigninManagerFactory::GetForProfile(profile); 176 SigninManagerFactory::GetForProfile(profile);
187 return !signin_manager->GetAuthenticatedUsername().empty(); 177 return !signin_manager->GetAuthenticatedUsername().empty();
188 } 178 }
189 179
190 bool ManagedUserImportHandler::HasAuthError() const { 180 bool ManagedUserImportHandler::HasAuthError() const {
191 Profile* profile = Profile::FromWebUI(web_ui()); 181 Profile* profile = Profile::FromWebUI(web_ui());
192 SigninGlobalError* signin_global_error = 182 SigninGlobalError* signin_global_error =
193 SigninGlobalError::GetForProfile(profile); 183 SigninGlobalError::GetForProfile(profile);
194 GoogleServiceAuthError::State state = 184 GoogleServiceAuthError::State state =
195 signin_global_error->GetLastAuthError().state(); 185 signin_global_error->GetLastAuthError().state();
196 186
197 return state == GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS || 187 return state == GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS ||
198 state == GoogleServiceAuthError::USER_NOT_SIGNED_UP || 188 state == GoogleServiceAuthError::USER_NOT_SIGNED_UP ||
199 state == GoogleServiceAuthError::ACCOUNT_DELETED || 189 state == GoogleServiceAuthError::ACCOUNT_DELETED ||
200 state == GoogleServiceAuthError::ACCOUNT_DISABLED; 190 state == GoogleServiceAuthError::ACCOUNT_DISABLED;
201 } 191 }
202 192
203 } // namespace options 193 } // namespace options
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698