Chromium Code Reviews| Index: chrome/browser/chromeos/login/users/supervised_user_manager_impl.cc |
| diff --git a/chrome/browser/chromeos/login/users/supervised_user_manager_impl.cc b/chrome/browser/chromeos/login/users/supervised_user_manager_impl.cc |
| index 066846564f6db4530cfe15b60f9b36a6bf1e20d9..16f99453632cd1b55b5e9ae9c75b0ef1b6bccae5 100644 |
| --- a/chrome/browser/chromeos/login/users/supervised_user_manager_impl.cc |
| +++ b/chrome/browser/chromeos/login/users/supervised_user_manager_impl.cc |
| @@ -23,6 +23,7 @@ |
| #include "chrome/browser/supervised_user/supervised_user_service_factory.h" |
| #include "chromeos/login/user_names.h" |
| #include "chromeos/settings/cros_settings_names.h" |
| +#include "components/user_manager/user_id.h" |
| #include "components/user_manager/user_type.h" |
| #include "content/public/browser/browser_thread.h" |
| #include "google_apis/gaia/gaia_auth_util.h" |
| @@ -140,19 +141,20 @@ SupervisedUserManagerImpl::SupervisedUserManagerImpl( |
| SupervisedUserManagerImpl::~SupervisedUserManagerImpl() { |
| } |
| -std::string SupervisedUserManagerImpl::GenerateUserId() { |
| +user_manager::UserID SupervisedUserManagerImpl::GenerateUserId() { |
| int counter = g_browser_process->local_state()-> |
| GetInteger(kSupervisedUsersNextId); |
| - std::string id; |
| + user_manager::UserID user_id = user_manager::UserID(std::string(), std::string()); |
|
Denis Kuznetsov (DE-MUC)
2015/06/10 16:50:47
EmptyGaiaID() ?
|
| bool user_exists; |
| do { |
| - id = base::StringPrintf( |
| + const std::string email = base::StringPrintf( |
| "%d@%s", counter, chromeos::login::kSupervisedUserDomain); |
| counter++; |
| - user_exists = (NULL != owner_->FindUser(id)); |
| + user_id = user_manager::UserID::FromUserEmail(email); |
| + user_exists = (NULL != owner_->FindUser(user_id)); |
| DCHECK(!user_exists); |
| if (user_exists) { |
| - LOG(ERROR) << "Supervised user with id " << id << " already exists."; |
| + LOG(ERROR) << "Supervised user with email " << email << " already exists."; |
| } |
| } while (user_exists); |
| @@ -160,17 +162,17 @@ std::string SupervisedUserManagerImpl::GenerateUserId() { |
| SetInteger(kSupervisedUsersNextId, counter); |
| g_browser_process->local_state()->CommitPendingWrite(); |
| - return id; |
| + return user_id; |
| } |
| bool SupervisedUserManagerImpl::HasSupervisedUsers( |
| - const std::string& manager_id) const { |
| + const user_manager::UserID& manager_id) const { |
| const user_manager::UserList& users = owner_->GetUsers(); |
| for (user_manager::UserList::const_iterator it = users.begin(); |
| it != users.end(); |
| ++it) { |
| if ((*it)->GetType() == user_manager::USER_TYPE_SUPERVISED) { |
| - if (manager_id == GetManagerUserId((*it)->email())) |
| + if (manager_id == GetManagerUserId((*it)->GetUserID())) |
| return true; |
| } |
| } |
| @@ -178,8 +180,8 @@ bool SupervisedUserManagerImpl::HasSupervisedUsers( |
| } |
| const user_manager::User* SupervisedUserManagerImpl::CreateUserRecord( |
| - const std::string& manager_id, |
| - const std::string& local_user_id, |
| + const user_manager::UserID& manager_id, |
| + const user_manager::UserID& local_user_id, |
| const std::string& sync_user_id, |
| const base::string16& display_name) { |
| const user_manager::User* user = FindByDisplayName(display_name); |
| @@ -206,15 +208,15 @@ const user_manager::User* SupervisedUserManagerImpl::CreateUserRecord( |
| local_state, |
| kSupervisedUserManagerDisplayEmails); |
| - prefs_new_users_update->Insert(0, new base::StringValue(local_user_id)); |
| + prefs_new_users_update->Insert(0, new base::StringValue(local_user_id.GetUserEmail())); |
| - sync_id_update->SetWithoutPathExpansion(local_user_id, |
| + sync_id_update->SetWithoutPathExpansion(local_user_id.GetUserEmail(), |
| new base::StringValue(sync_user_id)); |
| - manager_update->SetWithoutPathExpansion(local_user_id, |
| - new base::StringValue(manager->email())); |
| - manager_name_update->SetWithoutPathExpansion(local_user_id, |
| + manager_update->SetWithoutPathExpansion(local_user_id.GetUserEmail(), |
| + new base::StringValue(manager->GetUserID().GetUserEmail())); |
| + manager_name_update->SetWithoutPathExpansion(local_user_id.GetUserEmail(), |
| new base::StringValue(manager->GetDisplayName())); |
| - manager_email_update->SetWithoutPathExpansion(local_user_id, |
| + manager_email_update->SetWithoutPathExpansion(local_user_id.GetUserEmail(), |
| new base::StringValue(manager->display_email())); |
| owner_->SaveUserDisplayName(local_user_id, display_name); |
| @@ -223,7 +225,7 @@ const user_manager::User* SupervisedUserManagerImpl::CreateUserRecord( |
| return new_user; |
| } |
| -std::string SupervisedUserManagerImpl::GetUserSyncId(const std::string& user_id) |
| +std::string SupervisedUserManagerImpl::GetUserSyncId(const user_manager::UserID& user_id) |
| const { |
| std::string result; |
| GetUserStringValue(user_id, kSupervisedUserSyncId, &result); |
| @@ -231,37 +233,37 @@ std::string SupervisedUserManagerImpl::GetUserSyncId(const std::string& user_id) |
| } |
| base::string16 SupervisedUserManagerImpl::GetManagerDisplayName( |
| - const std::string& user_id) const { |
| + const user_manager::UserID& user_id) const { |
| PrefService* local_state = g_browser_process->local_state(); |
| const base::DictionaryValue* manager_names = |
| local_state->GetDictionary(kSupervisedUserManagerNames); |
| base::string16 result; |
| - if (manager_names->GetStringWithoutPathExpansion(user_id, &result) && |
| + if (manager_names->GetStringWithoutPathExpansion(user_id.GetUserEmail(), &result) && |
| !result.empty()) |
| return result; |
| return base::UTF8ToUTF16(GetManagerDisplayEmail(user_id)); |
| } |
| -std::string SupervisedUserManagerImpl::GetManagerUserId( |
| - const std::string& user_id) const { |
| +user_manager::UserID SupervisedUserManagerImpl::GetManagerUserId( |
| + const user_manager::UserID& user_id) const { |
| std::string result; |
| GetUserStringValue(user_id, kSupervisedUserManagers, &result); |
| - return result; |
| + return user_manager::UserID::FromUserEmail(result); |
| } |
| std::string SupervisedUserManagerImpl::GetManagerDisplayEmail( |
| - const std::string& user_id) const { |
| + const user_manager::UserID& user_id) const { |
| std::string result; |
| if (GetUserStringValue(user_id, |
| kSupervisedUserManagerDisplayEmails, |
| &result) && |
| !result.empty()) |
| return result; |
| - return GetManagerUserId(user_id); |
| + return GetManagerUserId(user_id).GetUserEmail(); |
| } |
| void SupervisedUserManagerImpl::GetPasswordInformation( |
| - const std::string& user_id, |
| + const user_manager::UserID& user_id, |
| base::DictionaryValue* result) { |
| int value; |
| if (GetUserIntegerValue(user_id, kSupervisedUserPasswordSchema, &value)) |
| @@ -281,7 +283,7 @@ void SupervisedUserManagerImpl::GetPasswordInformation( |
| } |
| void SupervisedUserManagerImpl::SetPasswordInformation( |
| - const std::string& user_id, |
| + const user_manager::UserID& user_id, |
| const base::DictionaryValue* password_info) { |
| int value; |
| if (password_info->GetIntegerWithoutPathExpansion(kSchemaVersion, &value)) |
| @@ -304,55 +306,55 @@ void SupervisedUserManagerImpl::SetPasswordInformation( |
| } |
| bool SupervisedUserManagerImpl::GetUserStringValue( |
| - const std::string& user_id, |
| + const user_manager::UserID& user_id, |
| const char* key, |
| std::string* out_value) const { |
| PrefService* local_state = g_browser_process->local_state(); |
| const base::DictionaryValue* dictionary = local_state->GetDictionary(key); |
| - return dictionary->GetStringWithoutPathExpansion(user_id, out_value); |
| + return dictionary->GetStringWithoutPathExpansion(user_id.GetUserEmail(), out_value); |
| } |
| bool SupervisedUserManagerImpl::GetUserIntegerValue( |
| - const std::string& user_id, |
| + const user_manager::UserID& user_id, |
| const char* key, |
| int* out_value) const { |
| PrefService* local_state = g_browser_process->local_state(); |
| const base::DictionaryValue* dictionary = local_state->GetDictionary(key); |
| - return dictionary->GetIntegerWithoutPathExpansion(user_id, out_value); |
| + return dictionary->GetIntegerWithoutPathExpansion(user_id.GetUserEmail(), out_value); |
| } |
| -bool SupervisedUserManagerImpl::GetUserBooleanValue(const std::string& user_id, |
| +bool SupervisedUserManagerImpl::GetUserBooleanValue(const user_manager::UserID& user_id, |
| const char* key, |
| bool* out_value) const { |
| PrefService* local_state = g_browser_process->local_state(); |
| const base::DictionaryValue* dictionary = local_state->GetDictionary(key); |
| - return dictionary->GetBooleanWithoutPathExpansion(user_id, out_value); |
| + return dictionary->GetBooleanWithoutPathExpansion(user_id.GetUserEmail(), out_value); |
| } |
| void SupervisedUserManagerImpl::SetUserStringValue( |
| - const std::string& user_id, |
| + const user_manager::UserID& user_id, |
| const char* key, |
| const std::string& value) { |
| PrefService* local_state = g_browser_process->local_state(); |
| DictionaryPrefUpdate update(local_state, key); |
| - update->SetStringWithoutPathExpansion(user_id, value); |
| + update->SetStringWithoutPathExpansion(user_id.GetUserEmail(), value); |
| } |
| void SupervisedUserManagerImpl::SetUserIntegerValue( |
| - const std::string& user_id, |
| + const user_manager::UserID& user_id, |
| const char* key, |
| const int value) { |
| PrefService* local_state = g_browser_process->local_state(); |
| DictionaryPrefUpdate update(local_state, key); |
| - update->SetIntegerWithoutPathExpansion(user_id, value); |
| + update->SetIntegerWithoutPathExpansion(user_id.GetUserEmail(), value); |
| } |
| -void SupervisedUserManagerImpl::SetUserBooleanValue(const std::string& user_id, |
| +void SupervisedUserManagerImpl::SetUserBooleanValue(const user_manager::UserID& user_id, |
| const char* key, |
| const bool value) { |
| PrefService* local_state = g_browser_process->local_state(); |
| DictionaryPrefUpdate update(local_state, key); |
| - update->SetBooleanWithoutPathExpansion(user_id, value); |
| + update->SetBooleanWithoutPathExpansion(user_id.GetUserEmail(), value); |
| } |
| const user_manager::User* SupervisedUserManagerImpl::FindByDisplayName( |
| @@ -378,7 +380,7 @@ const user_manager::User* SupervisedUserManagerImpl::FindBySyncId( |
| it != users.end(); |
| ++it) { |
| if (((*it)->GetType() == user_manager::USER_TYPE_SUPERVISED) && |
| - (GetUserSyncId((*it)->email()) == sync_id)) { |
| + (GetUserSyncId((*it)->GetUserID()) == sync_id)) { |
| return *it; |
| } |
| } |
| @@ -394,10 +396,10 @@ void SupervisedUserManagerImpl::StartCreationTransaction( |
| } |
| void SupervisedUserManagerImpl::SetCreationTransactionUserId( |
| - const std::string& email) { |
| + const user_manager::UserID& user_id) { |
| g_browser_process->local_state()-> |
| SetString(kSupervisedUserCreationTransactionUserId, |
| - email); |
| + user_id.GetUserEmail()); |
| g_browser_process->local_state()->CommitPendingWrite(); |
| } |
| @@ -420,11 +422,11 @@ void SupervisedUserManagerImpl::RollbackUserCreationTransaction() { |
| std::string display_name = prefs-> |
| GetString(kSupervisedUserCreationTransactionDisplayName); |
| - std::string user_id = prefs-> |
| - GetString(kSupervisedUserCreationTransactionUserId); |
| + user_manager::UserID user_id(user_manager::UserID::FromUserEmail(prefs-> |
| + GetString(kSupervisedUserCreationTransactionUserId))); |
| LOG(WARNING) << "Cleaning up transaction for " |
| - << display_name << "/" << user_id; |
| + << display_name << "/" << user_id.GetUserEmail(); |
| if (user_id.empty()) { |
| // Not much to do - just remove transaction. |
| @@ -433,10 +435,10 @@ void SupervisedUserManagerImpl::RollbackUserCreationTransaction() { |
| return; |
| } |
| - if (gaia::ExtractDomainName(user_id) != |
| + if (gaia::ExtractDomainName(user_id.GetUserEmail()) != |
| chromeos::login::kSupervisedUserDomain) { |
| LOG(WARNING) << "Clean up transaction for non-supervised user found :" |
| - << user_id << ", will not remove data"; |
| + << user_id.GetUserEmail() << ", will not remove data"; |
| prefs->ClearPref(kSupervisedUserCreationTransactionDisplayName); |
| prefs->ClearPref(kSupervisedUserCreationTransactionUserId); |
| prefs->CommitPendingWrite(); |
| @@ -450,10 +452,10 @@ void SupervisedUserManagerImpl::RollbackUserCreationTransaction() { |
| } |
| void SupervisedUserManagerImpl::RemoveNonCryptohomeData( |
| - const std::string& user_id) { |
| + const user_manager::UserID& user_id) { |
| PrefService* prefs = g_browser_process->local_state(); |
| ListPrefUpdate prefs_new_users_update(prefs, kSupervisedUsersFirstRun); |
| - prefs_new_users_update->Remove(base::StringValue(user_id), NULL); |
| + prefs_new_users_update->Remove(base::StringValue(user_id.GetUserEmail()), NULL); |
| CleanPref(user_id, kSupervisedUserSyncId); |
| CleanPref(user_id, kSupervisedUserManagers); |
| @@ -466,20 +468,20 @@ void SupervisedUserManagerImpl::RemoveNonCryptohomeData( |
| CleanPref(user_id, kSupervisedUserIncompleteKey); |
| } |
| -void SupervisedUserManagerImpl::CleanPref(const std::string& user_id, |
| +void SupervisedUserManagerImpl::CleanPref(const user_manager::UserID& user_id, |
| const char* key) { |
| PrefService* prefs = g_browser_process->local_state(); |
| DictionaryPrefUpdate dict_update(prefs, key); |
| - dict_update->RemoveWithoutPathExpansion(user_id, NULL); |
| + dict_update->RemoveWithoutPathExpansion(user_id.GetUserEmail(), NULL); |
| } |
| -bool SupervisedUserManagerImpl::CheckForFirstRun(const std::string& user_id) { |
| +bool SupervisedUserManagerImpl::CheckForFirstRun(const user_manager::UserID& user_id) { |
| ListPrefUpdate prefs_new_users_update(g_browser_process->local_state(), |
| kSupervisedUsersFirstRun); |
| - return prefs_new_users_update->Remove(base::StringValue(user_id), NULL); |
| + return prefs_new_users_update->Remove(base::StringValue(user_id.GetUserEmail()), NULL); |
| } |
| -void SupervisedUserManagerImpl::UpdateManagerName(const std::string& manager_id, |
| +void SupervisedUserManagerImpl::UpdateManagerName(const user_manager::UserID& manager_id, |
| const base::string16& new_display_name) { |
| PrefService* local_state = g_browser_process->local_state(); |
| @@ -490,10 +492,10 @@ void SupervisedUserManagerImpl::UpdateManagerName(const std::string& manager_id, |
| kSupervisedUserManagerNames); |
| for (base::DictionaryValue::Iterator it(*manager_ids); !it.IsAtEnd(); |
| it.Advance()) { |
| - std::string user_id; |
| - bool has_manager_id = it.value().GetAsString(&user_id); |
| + std::string user_email; |
| + bool has_manager_id = it.value().GetAsString(&user_email); |
| DCHECK(has_manager_id); |
| - if (user_id == manager_id) { |
| + if (user_manager::UserID::FromUserEmail(user_email) == manager_id) { |
| manager_name_update->SetWithoutPathExpansion( |
| it.key(), |
| new base::StringValue(new_display_name)); |