| OLD | NEW |
| 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/supervised_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" |
| 11 #include "base/values.h" | 11 #include "base/values.h" |
| 12 #include "chrome/browser/browser_process.h" | 12 #include "chrome/browser/browser_process.h" |
| 13 #include "chrome/browser/profiles/profile.h" | 13 #include "chrome/browser/profiles/profile.h" |
| 14 #include "chrome/browser/profiles/profile_avatar_icon_util.h" | 14 #include "chrome/browser/profiles/profile_avatar_icon_util.h" |
| 15 #include "chrome/browser/profiles/profile_info_cache.h" | 15 #include "chrome/browser/profiles/profile_info_cache.h" |
| (...skipping 24 matching lines...) Expand all Loading... |
| 40 avatar_icons->Append(new base::StringValue(avatar_url)); | 40 avatar_icons->Append(new base::StringValue(avatar_url)); |
| 41 } | 41 } |
| 42 | 42 |
| 43 return avatar_icons.Pass(); | 43 return avatar_icons.Pass(); |
| 44 } | 44 } |
| 45 | 45 |
| 46 } // namespace | 46 } // namespace |
| 47 | 47 |
| 48 namespace options { | 48 namespace options { |
| 49 | 49 |
| 50 ManagedUserImportHandler::ManagedUserImportHandler() | 50 SupervisedUserImportHandler::SupervisedUserImportHandler() |
| 51 : observer_(this), | 51 : observer_(this), |
| 52 weak_ptr_factory_(this) {} | 52 weak_ptr_factory_(this) {} |
| 53 | 53 |
| 54 ManagedUserImportHandler::~ManagedUserImportHandler() { | 54 SupervisedUserImportHandler::~SupervisedUserImportHandler() { |
| 55 Profile* profile = Profile::FromWebUI(web_ui()); | 55 Profile* profile = Profile::FromWebUI(web_ui()); |
| 56 if (!profile->IsSupervised()) { | 56 if (!profile->IsSupervised()) { |
| 57 SupervisedUserSyncService* service = | 57 SupervisedUserSyncService* service = |
| 58 SupervisedUserSyncServiceFactory::GetForProfile(profile); | 58 SupervisedUserSyncServiceFactory::GetForProfile(profile); |
| 59 if (service) | 59 if (service) |
| 60 service->RemoveObserver(this); | 60 service->RemoveObserver(this); |
| 61 subscription_.reset(); | 61 subscription_.reset(); |
| 62 } | 62 } |
| 63 } | 63 } |
| 64 | 64 |
| 65 void ManagedUserImportHandler::GetLocalizedValues( | 65 void SupervisedUserImportHandler::GetLocalizedValues( |
| 66 base::DictionaryValue* localized_strings) { | 66 base::DictionaryValue* localized_strings) { |
| 67 DCHECK(localized_strings); | 67 DCHECK(localized_strings); |
| 68 | 68 |
| 69 static OptionsStringResource resources[] = { | 69 static OptionsStringResource resources[] = { |
| 70 { "managedUserImportTitle", IDS_IMPORT_EXISTING_SUPERVISED_USER_TITLE }, | 70 { "managedUserImportTitle", IDS_IMPORT_EXISTING_SUPERVISED_USER_TITLE }, |
| 71 { "managedUserImportText", IDS_IMPORT_EXISTING_SUPERVISED_USER_TEXT }, | 71 { "managedUserImportText", IDS_IMPORT_EXISTING_SUPERVISED_USER_TEXT }, |
| 72 { "createNewUserLink", IDS_CREATE_NEW_USER_LINK }, | 72 { "createNewUserLink", IDS_CREATE_NEW_USER_LINK }, |
| 73 { "managedUserImportOk", IDS_IMPORT_EXISTING_SUPERVISED_USER_OK }, | 73 { "managedUserImportOk", IDS_IMPORT_EXISTING_SUPERVISED_USER_OK }, |
| 74 { "managedUserImportSigninError", | 74 { "managedUserImportSigninError", |
| 75 IDS_SUPERVISED_USER_IMPORT_SIGN_IN_ERROR }, | 75 IDS_SUPERVISED_USER_IMPORT_SIGN_IN_ERROR }, |
| 76 { "managedUserAlreadyOnThisDevice", | 76 { "managedUserAlreadyOnThisDevice", |
| 77 IDS_SUPERVISED_USER_ALREADY_ON_THIS_DEVICE }, | 77 IDS_SUPERVISED_USER_ALREADY_ON_THIS_DEVICE }, |
| 78 { "noExistingManagedUsers", IDS_SUPERVISED_USER_NO_EXISTING_ERROR }, | 78 { "noExistingManagedUsers", IDS_SUPERVISED_USER_NO_EXISTING_ERROR }, |
| 79 { "managedUserSelectAvatarTitle", | 79 { "managedUserSelectAvatarTitle", |
| 80 IDS_SUPERVISED_USER_SELECT_AVATAR_TITLE }, | 80 IDS_SUPERVISED_USER_SELECT_AVATAR_TITLE }, |
| 81 { "managedUserSelectAvatarText", IDS_SUPERVISED_USER_SELECT_AVATAR_TEXT }, | 81 { "managedUserSelectAvatarText", IDS_SUPERVISED_USER_SELECT_AVATAR_TEXT }, |
| 82 { "managedUserSelectAvatarOk", IDS_SUPERVISED_USER_SELECT_AVATAR_OK }, | 82 { "managedUserSelectAvatarOk", IDS_SUPERVISED_USER_SELECT_AVATAR_OK }, |
| 83 }; | 83 }; |
| 84 | 84 |
| 85 RegisterStrings(localized_strings, resources, arraysize(resources)); | 85 RegisterStrings(localized_strings, resources, arraysize(resources)); |
| 86 localized_strings->Set("avatarIcons", GetAvatarIcons().release()); | 86 localized_strings->Set("avatarIcons", GetAvatarIcons().release()); |
| 87 } | 87 } |
| 88 | 88 |
| 89 void ManagedUserImportHandler::InitializeHandler() { | 89 void SupervisedUserImportHandler::InitializeHandler() { |
| 90 Profile* profile = Profile::FromWebUI(web_ui()); | 90 Profile* profile = Profile::FromWebUI(web_ui()); |
| 91 if (!profile->IsSupervised()) { | 91 if (!profile->IsSupervised()) { |
| 92 SupervisedUserSyncService* sync_service = | 92 SupervisedUserSyncService* sync_service = |
| 93 SupervisedUserSyncServiceFactory::GetForProfile(profile); | 93 SupervisedUserSyncServiceFactory::GetForProfile(profile); |
| 94 if (sync_service) { | 94 if (sync_service) { |
| 95 sync_service->AddObserver(this); | 95 sync_service->AddObserver(this); |
| 96 observer_.Add(ProfileOAuth2TokenServiceFactory::GetForProfile(profile)-> | 96 observer_.Add(ProfileOAuth2TokenServiceFactory::GetForProfile(profile)-> |
| 97 signin_error_controller()); | 97 signin_error_controller()); |
| 98 SupervisedUserSharedSettingsService* settings_service = | 98 SupervisedUserSharedSettingsService* settings_service = |
| 99 SupervisedUserSharedSettingsServiceFactory::GetForBrowserContext( | 99 SupervisedUserSharedSettingsServiceFactory::GetForBrowserContext( |
| 100 profile); | 100 profile); |
| 101 subscription_ = settings_service->Subscribe( | 101 subscription_ = settings_service->Subscribe( |
| 102 base::Bind(&ManagedUserImportHandler::OnSharedSettingChanged, | 102 base::Bind(&SupervisedUserImportHandler::OnSharedSettingChanged, |
| 103 weak_ptr_factory_.GetWeakPtr())); | 103 weak_ptr_factory_.GetWeakPtr())); |
| 104 } else { | 104 } else { |
| 105 DCHECK(!SupervisedUserSharedSettingsServiceFactory::GetForBrowserContext( | 105 DCHECK(!SupervisedUserSharedSettingsServiceFactory::GetForBrowserContext( |
| 106 profile)); | 106 profile)); |
| 107 DCHECK(!ProfileOAuth2TokenServiceFactory::GetForProfile(profile)); | 107 DCHECK(!ProfileOAuth2TokenServiceFactory::GetForProfile(profile)); |
| 108 } | 108 } |
| 109 } | 109 } |
| 110 } | 110 } |
| 111 | 111 |
| 112 void ManagedUserImportHandler::RegisterMessages() { | 112 void SupervisedUserImportHandler::RegisterMessages() { |
| 113 web_ui()->RegisterMessageCallback("requestManagedUserImportUpdate", | 113 web_ui()->RegisterMessageCallback("requestManagedUserImportUpdate", |
| 114 base::Bind(&ManagedUserImportHandler::RequestManagedUserImportUpdate, | 114 base::Bind(&SupervisedUserImportHandler:: |
| 115 RequestSupervisedUserImportUpdate, |
| 115 base::Unretained(this))); | 116 base::Unretained(this))); |
| 116 } | 117 } |
| 117 | 118 |
| 118 void ManagedUserImportHandler::OnSupervisedUsersChanged() { | 119 void SupervisedUserImportHandler::OnSupervisedUsersChanged() { |
| 119 FetchManagedUsers(); | 120 FetchSupervisedUsers(); |
| 120 } | 121 } |
| 121 | 122 |
| 122 void ManagedUserImportHandler::FetchManagedUsers() { | 123 void SupervisedUserImportHandler::FetchSupervisedUsers() { |
| 123 web_ui()->CallJavascriptFunction("options.ManagedUserListData.resetPromise"); | 124 web_ui()->CallJavascriptFunction("options.ManagedUserListData.resetPromise"); |
| 124 RequestManagedUserImportUpdate(NULL); | 125 RequestSupervisedUserImportUpdate(NULL); |
| 125 } | 126 } |
| 126 | 127 |
| 127 void ManagedUserImportHandler::RequestManagedUserImportUpdate( | 128 void SupervisedUserImportHandler::RequestSupervisedUserImportUpdate( |
| 128 const base::ListValue* /* args */) { | 129 const base::ListValue* /* args */) { |
| 129 if (Profile::FromWebUI(web_ui())->IsSupervised()) | 130 if (Profile::FromWebUI(web_ui())->IsSupervised()) |
| 130 return; | 131 return; |
| 131 | 132 |
| 132 if (!IsAccountConnected() || HasAuthError()) { | 133 if (!IsAccountConnected() || HasAuthError()) { |
| 133 ClearManagedUsersAndShowError(); | 134 ClearSupervisedUsersAndShowError(); |
| 134 } else { | 135 } else { |
| 135 SupervisedUserSyncService* supervised_user_sync_service = | 136 SupervisedUserSyncService* supervised_user_sync_service = |
| 136 SupervisedUserSyncServiceFactory::GetForProfile( | 137 SupervisedUserSyncServiceFactory::GetForProfile( |
| 137 Profile::FromWebUI(web_ui())); | 138 Profile::FromWebUI(web_ui())); |
| 138 if (supervised_user_sync_service) { | 139 if (supervised_user_sync_service) { |
| 139 supervised_user_sync_service->GetSupervisedUsersAsync( | 140 supervised_user_sync_service->GetSupervisedUsersAsync( |
| 140 base::Bind(&ManagedUserImportHandler::SendExistingManagedUsers, | 141 base::Bind(&SupervisedUserImportHandler::SendExistingSupervisedUsers, |
| 141 weak_ptr_factory_.GetWeakPtr())); | 142 weak_ptr_factory_.GetWeakPtr())); |
| 142 } | 143 } |
| 143 } | 144 } |
| 144 } | 145 } |
| 145 | 146 |
| 146 void ManagedUserImportHandler::SendExistingManagedUsers( | 147 void SupervisedUserImportHandler::SendExistingSupervisedUsers( |
| 147 const base::DictionaryValue* dict) { | 148 const base::DictionaryValue* dict) { |
| 148 DCHECK(dict); | 149 DCHECK(dict); |
| 149 const ProfileInfoCache& cache = | 150 const ProfileInfoCache& cache = |
| 150 g_browser_process->profile_manager()->GetProfileInfoCache(); | 151 g_browser_process->profile_manager()->GetProfileInfoCache(); |
| 151 | 152 |
| 152 // Collect the ids of local supervised user profiles. | 153 // Collect the ids of local supervised user profiles. |
| 153 std::set<std::string> supervised_user_ids; | 154 std::set<std::string> supervised_user_ids; |
| 154 for (size_t i = 0; i < cache.GetNumberOfProfiles(); ++i) { | 155 for (size_t i = 0; i < cache.GetNumberOfProfiles(); ++i) { |
| 155 if (cache.ProfileIsSupervisedAtIndex(i)) | 156 if (cache.ProfileIsSupervisedAtIndex(i)) |
| 156 supervised_user_ids.insert(cache.GetSupervisedUserIdOfProfileAtIndex(i)); | 157 supervised_user_ids.insert(cache.GetSupervisedUserIdOfProfileAtIndex(i)); |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 201 supervised_user->SetBoolean("onCurrentDevice", on_current_device); | 202 supervised_user->SetBoolean("onCurrentDevice", on_current_device); |
| 202 | 203 |
| 203 supervised_users.Append(supervised_user); | 204 supervised_users.Append(supervised_user); |
| 204 } | 205 } |
| 205 | 206 |
| 206 web_ui()->CallJavascriptFunction( | 207 web_ui()->CallJavascriptFunction( |
| 207 "options.ManagedUserListData.receiveExistingManagedUsers", | 208 "options.ManagedUserListData.receiveExistingManagedUsers", |
| 208 supervised_users); | 209 supervised_users); |
| 209 } | 210 } |
| 210 | 211 |
| 211 void ManagedUserImportHandler::ClearManagedUsersAndShowError() { | 212 void SupervisedUserImportHandler::ClearSupervisedUsersAndShowError() { |
| 212 web_ui()->CallJavascriptFunction("options.ManagedUserListData.onSigninError"); | 213 web_ui()->CallJavascriptFunction("options.ManagedUserListData.onSigninError"); |
| 213 } | 214 } |
| 214 | 215 |
| 215 bool ManagedUserImportHandler::IsAccountConnected() const { | 216 bool SupervisedUserImportHandler::IsAccountConnected() const { |
| 216 Profile* profile = Profile::FromWebUI(web_ui()); | 217 Profile* profile = Profile::FromWebUI(web_ui()); |
| 217 SigninManagerBase* signin_manager = | 218 SigninManagerBase* signin_manager = |
| 218 SigninManagerFactory::GetForProfile(profile); | 219 SigninManagerFactory::GetForProfile(profile); |
| 219 return signin_manager && !signin_manager->GetAuthenticatedUsername().empty(); | 220 return signin_manager && !signin_manager->GetAuthenticatedUsername().empty(); |
| 220 } | 221 } |
| 221 | 222 |
| 222 bool ManagedUserImportHandler::HasAuthError() const { | 223 bool SupervisedUserImportHandler::HasAuthError() const { |
| 223 Profile* profile = Profile::FromWebUI(web_ui()); | 224 Profile* profile = Profile::FromWebUI(web_ui()); |
| 224 ProfileOAuth2TokenService* token_service = | 225 ProfileOAuth2TokenService* token_service = |
| 225 ProfileOAuth2TokenServiceFactory::GetForProfile(profile); | 226 ProfileOAuth2TokenServiceFactory::GetForProfile(profile); |
| 226 if (!token_service) | 227 if (!token_service) |
| 227 return true; | 228 return true; |
| 228 | 229 |
| 229 SigninErrorController* error_controller = | 230 SigninErrorController* error_controller = |
| 230 token_service->signin_error_controller(); | 231 token_service->signin_error_controller(); |
| 231 | 232 |
| 232 GoogleServiceAuthError::State state = error_controller->auth_error().state(); | 233 GoogleServiceAuthError::State state = error_controller->auth_error().state(); |
| 233 | 234 |
| 234 return state == GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS || | 235 return state == GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS || |
| 235 state == GoogleServiceAuthError::USER_NOT_SIGNED_UP || | 236 state == GoogleServiceAuthError::USER_NOT_SIGNED_UP || |
| 236 state == GoogleServiceAuthError::ACCOUNT_DELETED || | 237 state == GoogleServiceAuthError::ACCOUNT_DELETED || |
| 237 state == GoogleServiceAuthError::ACCOUNT_DISABLED; | 238 state == GoogleServiceAuthError::ACCOUNT_DISABLED; |
| 238 } | 239 } |
| 239 | 240 |
| 240 void ManagedUserImportHandler::OnSharedSettingChanged( | 241 void SupervisedUserImportHandler::OnSharedSettingChanged( |
| 241 const std::string& supervised_user_id, | 242 const std::string& supervised_user_id, |
| 242 const std::string& key) { | 243 const std::string& key) { |
| 243 if (key == supervised_users::kChromeAvatarIndex) | 244 if (key == supervised_users::kChromeAvatarIndex) |
| 244 FetchManagedUsers(); | 245 FetchSupervisedUsers(); |
| 245 } | 246 } |
| 246 | 247 |
| 247 void ManagedUserImportHandler::OnErrorChanged() { | 248 void SupervisedUserImportHandler::OnErrorChanged() { |
| 248 FetchManagedUsers(); | 249 FetchSupervisedUsers(); |
| 249 } | 250 } |
| 250 | 251 |
| 251 } // namespace options | 252 } // namespace options |
| OLD | NEW |