Index: chrome/browser/chromeos/login/managed/locally_managed_user_creation_screen.cc |
diff --git a/chrome/browser/chromeos/login/managed/locally_managed_user_creation_screen.cc b/chrome/browser/chromeos/login/managed/locally_managed_user_creation_screen.cc |
index f44f6fd779449dcf1372ff94fb2b75285aaf11df..d16a7ebe1c2b60455574f42a5851d70285cb1201 100644 |
--- a/chrome/browser/chromeos/login/managed/locally_managed_user_creation_screen.cc |
+++ b/chrome/browser/chromeos/login/managed/locally_managed_user_creation_screen.cc |
@@ -21,6 +21,9 @@ |
#include "chrome/browser/chromeos/login/user_image.h" |
#include "chrome/browser/chromeos/login/user_image_manager.h" |
#include "chrome/browser/chromeos/login/wizard_controller.h" |
+#include "chrome/browser/managed_mode/managed_user_constants.h" |
+#include "chrome/browser/managed_mode/managed_user_shared_settings_service.h" |
+#include "chrome/browser/managed_mode/managed_user_shared_settings_service_factory.h" |
#include "chrome/browser/managed_mode/managed_user_sync_service.h" |
#include "chrome/browser/managed_mode/managed_user_sync_service_factory.h" |
#include "chrome/common/chrome_switches.h" |
@@ -226,11 +229,17 @@ void LocallyManagedUserCreationScreen::ImportManagedUser( |
} |
base::string16 display_name; |
std::string master_key; |
+ std::string signature_key; |
+ std::string encryption_key; |
std::string avatar; |
bool exists; |
int avatar_index = ManagedUserCreationController::kDummyAvatarIndex; |
user_info->GetString(ManagedUserSyncService::kName, &display_name); |
user_info->GetString(ManagedUserSyncService::kMasterKey, &master_key); |
+ user_info->GetString(ManagedUserSyncService::kPasswordSignatureKey, |
+ &signature_key); |
+ user_info->GetString(ManagedUserSyncService::kPasswordEncryptionKey, |
+ &encryption_key); |
user_info->GetString(ManagedUserSyncService::kChromeOsAvatar, &avatar); |
user_info->GetBoolean(kUserExists, &exists); |
@@ -248,11 +257,27 @@ void LocallyManagedUserCreationScreen::ImportManagedUser( |
ManagedUserSyncService::GetAvatarIndex(avatar, &avatar_index); |
- controller_->StartImport(display_name, |
- std::string(), |
- avatar_index, |
- user_id, |
- master_key); |
+ const base::DictionaryValue* password_data = NULL; |
+ ManagedUserSharedSettingsService* shared_settings_service = |
+ ManagedUserSharedSettingsServiceFactory::GetForBrowserContext( |
+ controller_->GetManagerProfile()); |
+ const base::Value* value = shared_settings_service->GetValue( |
+ user_id, managed_users::kChromeOSPasswordData); |
+ |
+ bool password_right_here = value && value->GetAsDictionary(&password_data) && |
Nikita (slow)
2014/04/03 09:13:08
nit: rename password_right_here to have_password
|
+ !password_data->empty(); |
+ |
+ if (password_right_here) { |
+ controller_->StartImport(display_name, |
+ avatar_index, |
+ user_id, |
+ master_key, |
+ password_data, |
+ encryption_key, |
+ signature_key); |
+ } else { |
+ NOTREACHED() << " Oops, no password"; |
+ } |
} |
// TODO(antrim): Code duplication with previous method will be removed once |
@@ -503,8 +528,14 @@ void LocallyManagedUserCreationScreen::OnGetManagedUsers( |
ui_copy->SetString(kUserConflict, kUserConflictName); |
} |
ui_copy->SetString(ManagedUserSyncService::kName, display_name); |
- // TODO(antrim): For now mark all users as having no password. |
- ui_copy->SetBoolean(kUserNeedPassword, true); |
+ |
+ std::string signature_key; |
+ bool has_password = |
Nikita (slow)
2014/04/03 09:13:08
nit: Not quite clear why variable is called has_pa
|
+ local_copy->GetString(ManagedUserSyncService::kPasswordSignatureKey, |
+ &signature_key) && |
+ !signature_key.empty(); |
+ |
+ ui_copy->SetBoolean(kUserNeedPassword, !has_password); |
ui_copy->SetString("id", it.key()); |
existing_users_->Set(it.key(), local_copy); |