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

Side by Side Diff: chrome/browser/chromeos/login/users/supervised_user_manager_impl.cc

Issue 1412813003: This CL replaces user_manager::UserID with AccountId. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@468875--Chrome-OS-handles-deletion-of-Gmail-account-poorly--Create-AccountID-structure-part2--user_names
Patch Set: Update after review. Created 5 years, 1 month 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/chromeos/login/users/supervised_user_manager_impl.h" 5 #include "chrome/browser/chromeos/login/users/supervised_user_manager_impl.h"
6 6
7 #include "base/files/file_path.h" 7 #include "base/files/file_path.h"
8 #include "base/files/file_util.h" 8 #include "base/files/file_util.h"
9 #include "base/prefs/pref_registry_simple.h" 9 #include "base/prefs/pref_registry_simple.h"
10 #include "base/prefs/pref_service.h" 10 #include "base/prefs/pref_service.h"
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
142 142
143 std::string SupervisedUserManagerImpl::GenerateUserId() { 143 std::string SupervisedUserManagerImpl::GenerateUserId() {
144 int counter = g_browser_process->local_state()-> 144 int counter = g_browser_process->local_state()->
145 GetInteger(kSupervisedUsersNextId); 145 GetInteger(kSupervisedUsersNextId);
146 std::string id; 146 std::string id;
147 bool user_exists; 147 bool user_exists;
148 do { 148 do {
149 id = base::StringPrintf( 149 id = base::StringPrintf(
150 "%d@%s", counter, chromeos::login::kSupervisedUserDomain); 150 "%d@%s", counter, chromeos::login::kSupervisedUserDomain);
151 counter++; 151 counter++;
152 user_exists = (NULL != owner_->FindUser(id)); 152 user_exists = (NULL != owner_->FindUser(AccountId::FromUserEmail(id)));
achuithb 2015/10/28 23:11:45 nullptr
Alexander Alekseev 2015/10/29 02:00:41 Done.
153 DCHECK(!user_exists); 153 DCHECK(!user_exists);
154 if (user_exists) { 154 if (user_exists) {
155 LOG(ERROR) << "Supervised user with id " << id << " already exists."; 155 LOG(ERROR) << "Supervised user with id " << id << " already exists.";
156 } 156 }
157 } while (user_exists); 157 } while (user_exists);
158 158
159 g_browser_process->local_state()-> 159 g_browser_process->local_state()->
160 SetInteger(kSupervisedUsersNextId, counter); 160 SetInteger(kSupervisedUsersNextId, counter);
161 161
162 g_browser_process->local_state()->CommitPendingWrite(); 162 g_browser_process->local_state()->CommitPendingWrite();
163 return id; 163 return id;
164 } 164 }
165 165
166 bool SupervisedUserManagerImpl::HasSupervisedUsers( 166 bool SupervisedUserManagerImpl::HasSupervisedUsers(
167 const std::string& manager_id) const { 167 const std::string& manager_id) const {
achuithb 2015/10/28 23:11:45 Is this going to be replaced with AccountId?
Alexander Alekseev 2015/10/29 02:00:41 Yes. As long as SupervisedUserManager is going to
168 const user_manager::UserList& users = owner_->GetUsers(); 168 const user_manager::UserList& users = owner_->GetUsers();
169 for (user_manager::UserList::const_iterator it = users.begin(); 169 for (user_manager::UserList::const_iterator it = users.begin();
170 it != users.end(); 170 it != users.end();
171 ++it) { 171 ++it) {
172 if ((*it)->GetType() == user_manager::USER_TYPE_SUPERVISED) { 172 if ((*it)->GetType() == user_manager::USER_TYPE_SUPERVISED) {
173 if (manager_id == GetManagerUserId((*it)->email())) 173 if (manager_id == GetManagerUserId((*it)->email()))
174 return true; 174 return true;
175 } 175 }
176 } 176 }
177 return false; 177 return false;
178 } 178 }
179 179
180 const user_manager::User* SupervisedUserManagerImpl::CreateUserRecord( 180 const user_manager::User* SupervisedUserManagerImpl::CreateUserRecord(
181 const std::string& manager_id, 181 const std::string& manager_id,
182 const std::string& local_user_id, 182 const std::string& local_user_id,
183 const std::string& sync_user_id, 183 const std::string& sync_user_id,
184 const base::string16& display_name) { 184 const base::string16& display_name) {
185 const user_manager::User* user = FindByDisplayName(display_name); 185 const user_manager::User* user = FindByDisplayName(display_name);
186 DCHECK(!user); 186 DCHECK(!user);
187 if (user) 187 if (user)
188 return user; 188 return user;
189 const user_manager::User* manager = owner_->FindUser(manager_id); 189 const user_manager::User* manager =
190 owner_->FindUser(AccountId::FromUserEmail(manager_id));
190 CHECK(manager); 191 CHECK(manager);
191 192
192 PrefService* local_state = g_browser_process->local_state(); 193 PrefService* local_state = g_browser_process->local_state();
193 194
194 user_manager::User* new_user = 195 user_manager::User* new_user = user_manager::User::CreateSupervisedUser(
195 user_manager::User::CreateSupervisedUser(local_user_id); 196 AccountId::FromUserEmail(local_user_id));
196 197
197 owner_->AddUserRecord(new_user); 198 owner_->AddUserRecord(new_user);
198 199
199 ListPrefUpdate prefs_new_users_update(local_state, 200 ListPrefUpdate prefs_new_users_update(local_state,
200 kSupervisedUsersFirstRun); 201 kSupervisedUsersFirstRun);
201 DictionaryPrefUpdate sync_id_update(local_state, kSupervisedUserSyncId); 202 DictionaryPrefUpdate sync_id_update(local_state, kSupervisedUserSyncId);
202 DictionaryPrefUpdate manager_update(local_state, kSupervisedUserManagers); 203 DictionaryPrefUpdate manager_update(local_state, kSupervisedUserManagers);
203 DictionaryPrefUpdate manager_name_update(local_state, 204 DictionaryPrefUpdate manager_name_update(local_state,
204 kSupervisedUserManagerNames); 205 kSupervisedUserManagerNames);
205 DictionaryPrefUpdate manager_email_update( 206 DictionaryPrefUpdate manager_email_update(
206 local_state, 207 local_state,
207 kSupervisedUserManagerDisplayEmails); 208 kSupervisedUserManagerDisplayEmails);
208 209
209 prefs_new_users_update->Insert(0, new base::StringValue(local_user_id)); 210 prefs_new_users_update->Insert(0, new base::StringValue(local_user_id));
210 211
211 sync_id_update->SetWithoutPathExpansion(local_user_id, 212 sync_id_update->SetWithoutPathExpansion(local_user_id,
212 new base::StringValue(sync_user_id)); 213 new base::StringValue(sync_user_id));
213 manager_update->SetWithoutPathExpansion(local_user_id, 214 manager_update->SetWithoutPathExpansion(local_user_id,
214 new base::StringValue(manager->email())); 215 new base::StringValue(manager->email()));
215 manager_name_update->SetWithoutPathExpansion(local_user_id, 216 manager_name_update->SetWithoutPathExpansion(local_user_id,
216 new base::StringValue(manager->GetDisplayName())); 217 new base::StringValue(manager->GetDisplayName()));
217 manager_email_update->SetWithoutPathExpansion(local_user_id, 218 manager_email_update->SetWithoutPathExpansion(local_user_id,
218 new base::StringValue(manager->display_email())); 219 new base::StringValue(manager->display_email()));
219 220
220 owner_->SaveUserDisplayName(local_user_id, display_name); 221 owner_->SaveUserDisplayName(AccountId::FromUserEmail(local_user_id),
222 display_name);
221 223
222 g_browser_process->local_state()->CommitPendingWrite(); 224 g_browser_process->local_state()->CommitPendingWrite();
223 return new_user; 225 return new_user;
224 } 226 }
225 227
226 std::string SupervisedUserManagerImpl::GetUserSyncId(const std::string& user_id) 228 std::string SupervisedUserManagerImpl::GetUserSyncId(const std::string& user_id)
227 const { 229 const {
228 std::string result; 230 std::string result;
229 GetUserStringValue(user_id, kSupervisedUserSyncId, &result); 231 GetUserStringValue(user_id, kSupervisedUserSyncId, &result);
230 return result; 232 return result;
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after
435 437
436 if (gaia::ExtractDomainName(user_id) != 438 if (gaia::ExtractDomainName(user_id) !=
437 chromeos::login::kSupervisedUserDomain) { 439 chromeos::login::kSupervisedUserDomain) {
438 LOG(WARNING) << "Clean up transaction for non-supervised user found :" 440 LOG(WARNING) << "Clean up transaction for non-supervised user found :"
439 << user_id << ", will not remove data"; 441 << user_id << ", will not remove data";
440 prefs->ClearPref(kSupervisedUserCreationTransactionDisplayName); 442 prefs->ClearPref(kSupervisedUserCreationTransactionDisplayName);
441 prefs->ClearPref(kSupervisedUserCreationTransactionUserId); 443 prefs->ClearPref(kSupervisedUserCreationTransactionUserId);
442 prefs->CommitPendingWrite(); 444 prefs->CommitPendingWrite();
443 return; 445 return;
444 } 446 }
445 owner_->RemoveNonOwnerUserInternal(user_id, NULL); 447 owner_->RemoveNonOwnerUserInternal(AccountId::FromUserEmail(user_id), NULL);
achuithb 2015/10/28 23:11:45 nullptr
Alexander Alekseev 2015/10/29 02:00:41 Done.
446 448
447 prefs->ClearPref(kSupervisedUserCreationTransactionDisplayName); 449 prefs->ClearPref(kSupervisedUserCreationTransactionDisplayName);
448 prefs->ClearPref(kSupervisedUserCreationTransactionUserId); 450 prefs->ClearPref(kSupervisedUserCreationTransactionUserId);
449 prefs->CommitPendingWrite(); 451 prefs->CommitPendingWrite();
450 } 452 }
451 453
452 void SupervisedUserManagerImpl::RemoveNonCryptohomeData( 454 void SupervisedUserManagerImpl::RemoveNonCryptohomeData(
453 const std::string& user_id) { 455 const std::string& user_id) {
454 PrefService* prefs = g_browser_process->local_state(); 456 PrefService* prefs = g_browser_process->local_state();
455 ListPrefUpdate prefs_new_users_update(prefs, kSupervisedUsersFirstRun); 457 ListPrefUpdate prefs_new_users_update(prefs, kSupervisedUsersFirstRun);
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
520 } 522 }
521 523
522 void SupervisedUserManagerImpl::ConfigureSyncWithToken( 524 void SupervisedUserManagerImpl::ConfigureSyncWithToken(
523 Profile* profile, 525 Profile* profile,
524 const std::string& token) { 526 const std::string& token) {
525 if (!token.empty()) 527 if (!token.empty())
526 SupervisedUserServiceFactory::GetForProfile(profile)->InitSync(token); 528 SupervisedUserServiceFactory::GetForProfile(profile)->InitSync(token);
527 } 529 }
528 530
529 } // namespace chromeos 531 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698