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

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

Issue 393343002: Rename "managed (mode|user)" to "supervised user" (part 7) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: more alphabetize (and rebase again) Created 6 years, 5 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 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/file_util.h" 7 #include "base/file_util.h"
8 #include "base/files/file_path.h" 8 #include "base/files/file_path.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"
11 #include "base/prefs/scoped_user_pref_update.h" 11 #include "base/prefs/scoped_user_pref_update.h"
12 #include "base/strings/string_util.h" 12 #include "base/strings/string_util.h"
13 #include "base/strings/stringprintf.h" 13 #include "base/strings/stringprintf.h"
14 #include "base/strings/utf_string_conversions.h" 14 #include "base/strings/utf_string_conversions.h"
15 #include "base/threading/sequenced_worker_pool.h" 15 #include "base/threading/sequenced_worker_pool.h"
16 #include "base/values.h" 16 #include "base/values.h"
17 #include "chrome/browser/browser_process.h" 17 #include "chrome/browser/browser_process.h"
18 #include "chrome/browser/chromeos/login/managed/locally_managed_user_constants.h " 18 #include "chrome/browser/chromeos/login/supervised/supervised_user_authenticatio n.h"
19 #include "chrome/browser/chromeos/login/managed/supervised_user_authentication.h " 19 #include "chrome/browser/chromeos/login/supervised/supervised_user_constants.h"
20 #include "chrome/browser/chromeos/login/users/user_manager_impl.h" 20 #include "chrome/browser/chromeos/login/users/user_manager_impl.h"
21 #include "chrome/browser/chromeos/profiles/profile_helper.h" 21 #include "chrome/browser/chromeos/profiles/profile_helper.h"
22 #include "chrome/browser/supervised_user/supervised_user_service.h" 22 #include "chrome/browser/supervised_user/supervised_user_service.h"
23 #include "chrome/browser/supervised_user/supervised_user_service_factory.h" 23 #include "chrome/browser/supervised_user/supervised_user_service_factory.h"
24 #include "chromeos/login/user_names.h" 24 #include "chromeos/login/user_names.h"
25 #include "chromeos/settings/cros_settings_names.h" 25 #include "chromeos/settings/cros_settings_names.h"
26 #include "components/user_manager/user_type.h" 26 #include "components/user_manager/user_type.h"
27 #include "content/public/browser/browser_thread.h" 27 #include "content/public/browser/browser_thread.h"
28 #include "google_apis/gaia/gaia_auth_util.h" 28 #include "google_apis/gaia/gaia_auth_util.h"
29 29
30 using content::BrowserThread; 30 using content::BrowserThread;
31 31
32 namespace { 32 namespace {
33 33
34 // Names for pref keys in Local State. 34 // Names for pref keys in Local State.
35 // A map from locally managed user local user id to sync user id. 35 // A map from supervised user local user id to sync user id.
36 const char kSupervisedUserSyncId[] = 36 const char kSupervisedUserSyncId[] = "ManagedUserSyncId";
37 "ManagedUserSyncId";
38 37
39 // A map from locally managed user id to manager user id. 38 // A map from supervised user id to manager user id.
40 const char kSupervisedUserManagers[] = 39 const char kSupervisedUserManagers[] = "ManagedUserManagers";
41 "ManagedUserManagers";
42 40
43 // A map from locally managed user id to manager display name. 41 // A map from supervised user id to manager display name.
44 const char kSupervisedUserManagerNames[] = 42 const char kSupervisedUserManagerNames[] = "ManagedUserManagerNames";
45 "ManagedUserManagerNames";
46 43
47 // A map from locally managed user id to manager display e-mail. 44 // A map from supervised user id to manager display e-mail.
48 const char kSupervisedUserManagerDisplayEmails[] = 45 const char kSupervisedUserManagerDisplayEmails[] =
49 "ManagedUserManagerDisplayEmails"; 46 "ManagedUserManagerDisplayEmails";
50 47
51 // A vector pref of the locally managed accounts defined on this device, that 48 // A vector pref of the supervised accounts defined on this device, that had
52 // had not logged in yet. 49 // not logged in yet.
53 const char kLocallyManagedUsersFirstRun[] = "LocallyManagedUsersFirstRun"; 50 const char kSupervisedUsersFirstRun[] = "LocallyManagedUsersFirstRun";
54 51
55 // A pref of the next id for locally managed users generation. 52 // A pref of the next id for supervised users generation.
56 const char kLocallyManagedUsersNextId[] = 53 const char kSupervisedUsersNextId[] = "LocallyManagedUsersNextId";
57 "LocallyManagedUsersNextId";
58 54
59 // A pref of the next id for locally managed users generation. 55 // A pref of the next id for supervised users generation.
60 const char kLocallyManagedUserCreationTransactionDisplayName[] = 56 const char kSupervisedUserCreationTransactionDisplayName[] =
61 "LocallyManagedUserCreationTransactionDisplayName"; 57 "LocallyManagedUserCreationTransactionDisplayName";
62 58
63 // A pref of the next id for locally managed users generation. 59 // A pref of the next id for supervised users generation.
64 const char kLocallyManagedUserCreationTransactionUserId[] = 60 const char kSupervisedUserCreationTransactionUserId[] =
65 "LocallyManagedUserCreationTransactionUserId"; 61 "LocallyManagedUserCreationTransactionUserId";
66 62
67 // A map from user id to password schema id. 63 // A map from user id to password schema id.
68 const char kSupervisedUserPasswordSchema[] = 64 const char kSupervisedUserPasswordSchema[] =
69 "SupervisedUserPasswordSchema"; 65 "SupervisedUserPasswordSchema";
70 66
71 // A map from user id to password salt. 67 // A map from user id to password salt.
72 const char kSupervisedUserPasswordSalt[] = 68 const char kSupervisedUserPasswordSalt[] =
73 "SupervisedUserPasswordSalt"; 69 "SupervisedUserPasswordSalt";
74 70
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 const char kRequirePasswordUpdate[] = "RequirePasswordUpdate"; 103 const char kRequirePasswordUpdate[] = "RequirePasswordUpdate";
108 const char kHasIncompleteKey[] = "HasIncompleteKey"; 104 const char kHasIncompleteKey[] = "HasIncompleteKey";
109 const char kPasswordEncryptionKey[] = "password.hmac.encryption"; 105 const char kPasswordEncryptionKey[] = "password.hmac.encryption";
110 const char kPasswordSignatureKey[] = "password.hmac.signature"; 106 const char kPasswordSignatureKey[] = "password.hmac.signature";
111 107
112 const char kPasswordUpdateFile[] = "password.update"; 108 const char kPasswordUpdateFile[] = "password.update";
113 const int kMinPasswordRevision = 1; 109 const int kMinPasswordRevision = 1;
114 110
115 // static 111 // static
116 void SupervisedUserManager::RegisterPrefs(PrefRegistrySimple* registry) { 112 void SupervisedUserManager::RegisterPrefs(PrefRegistrySimple* registry) {
117 registry->RegisterListPref(kLocallyManagedUsersFirstRun); 113 registry->RegisterListPref(kSupervisedUsersFirstRun);
118 registry->RegisterIntegerPref(kLocallyManagedUsersNextId, 0); 114 registry->RegisterIntegerPref(kSupervisedUsersNextId, 0);
119 registry->RegisterStringPref( 115 registry->RegisterStringPref(
120 kLocallyManagedUserCreationTransactionDisplayName, ""); 116 kSupervisedUserCreationTransactionDisplayName, "");
121 registry->RegisterStringPref( 117 registry->RegisterStringPref(
122 kLocallyManagedUserCreationTransactionUserId, ""); 118 kSupervisedUserCreationTransactionUserId, "");
123 registry->RegisterDictionaryPref(kSupervisedUserSyncId); 119 registry->RegisterDictionaryPref(kSupervisedUserSyncId);
124 registry->RegisterDictionaryPref(kSupervisedUserManagers); 120 registry->RegisterDictionaryPref(kSupervisedUserManagers);
125 registry->RegisterDictionaryPref(kSupervisedUserManagerNames); 121 registry->RegisterDictionaryPref(kSupervisedUserManagerNames);
126 registry->RegisterDictionaryPref(kSupervisedUserManagerDisplayEmails); 122 registry->RegisterDictionaryPref(kSupervisedUserManagerDisplayEmails);
127 123
128 registry->RegisterDictionaryPref(kSupervisedUserPasswordSchema); 124 registry->RegisterDictionaryPref(kSupervisedUserPasswordSchema);
129 registry->RegisterDictionaryPref(kSupervisedUserPasswordSalt); 125 registry->RegisterDictionaryPref(kSupervisedUserPasswordSalt);
130 registry->RegisterDictionaryPref(kSupervisedUserPasswordRevision); 126 registry->RegisterDictionaryPref(kSupervisedUserPasswordRevision);
131 127
132 registry->RegisterDictionaryPref(kSupervisedUserNeedPasswordUpdate); 128 registry->RegisterDictionaryPref(kSupervisedUserNeedPasswordUpdate);
133 registry->RegisterDictionaryPref(kSupervisedUserIncompleteKey); 129 registry->RegisterDictionaryPref(kSupervisedUserIncompleteKey);
134 } 130 }
135 131
136 SupervisedUserManagerImpl::SupervisedUserManagerImpl(UserManagerImpl* owner) 132 SupervisedUserManagerImpl::SupervisedUserManagerImpl(UserManagerImpl* owner)
137 : owner_(owner), 133 : owner_(owner),
138 cros_settings_(CrosSettings::Get()) { 134 cros_settings_(CrosSettings::Get()) {
139 // SupervisedUserManager instance should be used only on UI thread. 135 // SupervisedUserManager instance should be used only on UI thread.
140 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 136 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
141 authentication_.reset(new SupervisedUserAuthentication(this)); 137 authentication_.reset(new SupervisedUserAuthentication(this));
142 } 138 }
143 139
144 SupervisedUserManagerImpl::~SupervisedUserManagerImpl() { 140 SupervisedUserManagerImpl::~SupervisedUserManagerImpl() {
145 } 141 }
146 142
147 std::string SupervisedUserManagerImpl::GenerateUserId() { 143 std::string SupervisedUserManagerImpl::GenerateUserId() {
148 int counter = g_browser_process->local_state()-> 144 int counter = g_browser_process->local_state()->
149 GetInteger(kLocallyManagedUsersNextId); 145 GetInteger(kSupervisedUsersNextId);
150 std::string id; 146 std::string id;
151 bool user_exists; 147 bool user_exists;
152 do { 148 do {
153 id = base::StringPrintf( 149 id = base::StringPrintf(
154 "%d@%s", counter, chromeos::login::kLocallyManagedUserDomain); 150 "%d@%s", counter, chromeos::login::kSupervisedUserDomain);
155 counter++; 151 counter++;
156 user_exists = (NULL != owner_->FindUser(id)); 152 user_exists = (NULL != owner_->FindUser(id));
157 DCHECK(!user_exists); 153 DCHECK(!user_exists);
158 if (user_exists) { 154 if (user_exists) {
159 LOG(ERROR) << "Supervised user with id " << id << " already exists."; 155 LOG(ERROR) << "Supervised user with id " << id << " already exists.";
160 } 156 }
161 } while (user_exists); 157 } while (user_exists);
162 158
163 g_browser_process->local_state()-> 159 g_browser_process->local_state()->
164 SetInteger(kLocallyManagedUsersNextId, counter); 160 SetInteger(kSupervisedUsersNextId, counter);
165 161
166 g_browser_process->local_state()->CommitPendingWrite(); 162 g_browser_process->local_state()->CommitPendingWrite();
167 return id; 163 return id;
168 } 164 }
169 165
170 bool SupervisedUserManagerImpl::HasSupervisedUsers( 166 bool SupervisedUserManagerImpl::HasSupervisedUsers(
171 const std::string& manager_id) const { 167 const std::string& manager_id) const {
172 const UserList& users = owner_->GetUsers(); 168 const UserList& users = owner_->GetUsers();
173 for (UserList::const_iterator it = users.begin(); it != users.end(); ++it) { 169 for (UserList::const_iterator it = users.begin(); it != users.end(); ++it) {
174 if ((*it)->GetType() == user_manager::USER_TYPE_LOCALLY_MANAGED) { 170 if ((*it)->GetType() == user_manager::USER_TYPE_SUPERVISED) {
175 if (manager_id == GetManagerUserId((*it)->email())) 171 if (manager_id == GetManagerUserId((*it)->email()))
176 return true; 172 return true;
177 } 173 }
178 } 174 }
179 return false; 175 return false;
180 } 176 }
181 177
182 const User* SupervisedUserManagerImpl::CreateUserRecord( 178 const User* SupervisedUserManagerImpl::CreateUserRecord(
183 const std::string& manager_id, 179 const std::string& manager_id,
184 const std::string& local_user_id, 180 const std::string& local_user_id,
185 const std::string& sync_user_id, 181 const std::string& sync_user_id,
186 const base::string16& display_name) { 182 const base::string16& display_name) {
187 const User* user = FindByDisplayName(display_name); 183 const User* user = FindByDisplayName(display_name);
188 DCHECK(!user); 184 DCHECK(!user);
189 if (user) 185 if (user)
190 return user; 186 return user;
191 const User* manager = owner_->FindUser(manager_id); 187 const User* manager = owner_->FindUser(manager_id);
192 CHECK(manager); 188 CHECK(manager);
193 189
194 PrefService* local_state = g_browser_process->local_state(); 190 PrefService* local_state = g_browser_process->local_state();
195 191
196 User* new_user = User::CreateLocallyManagedUser(local_user_id); 192 User* new_user = User::CreateSupervisedUser(local_user_id);
197 193
198 owner_->AddUserRecord(new_user); 194 owner_->AddUserRecord(new_user);
199 195
200 ListPrefUpdate prefs_new_users_update(local_state, 196 ListPrefUpdate prefs_new_users_update(local_state,
201 kLocallyManagedUsersFirstRun); 197 kSupervisedUsersFirstRun);
202 DictionaryPrefUpdate sync_id_update(local_state, kSupervisedUserSyncId); 198 DictionaryPrefUpdate sync_id_update(local_state, kSupervisedUserSyncId);
203 DictionaryPrefUpdate manager_update(local_state, kSupervisedUserManagers); 199 DictionaryPrefUpdate manager_update(local_state, kSupervisedUserManagers);
204 DictionaryPrefUpdate manager_name_update(local_state, 200 DictionaryPrefUpdate manager_name_update(local_state,
205 kSupervisedUserManagerNames); 201 kSupervisedUserManagerNames);
206 DictionaryPrefUpdate manager_email_update( 202 DictionaryPrefUpdate manager_email_update(
207 local_state, 203 local_state,
208 kSupervisedUserManagerDisplayEmails); 204 kSupervisedUserManagerDisplayEmails);
209 205
210 prefs_new_users_update->Insert(0, new base::StringValue(local_user_id)); 206 prefs_new_users_update->Insert(0, new base::StringValue(local_user_id));
211 207
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
354 PrefService* local_state = g_browser_process->local_state(); 350 PrefService* local_state = g_browser_process->local_state();
355 DictionaryPrefUpdate update(local_state, key); 351 DictionaryPrefUpdate update(local_state, key);
356 update->SetBooleanWithoutPathExpansion(user_id, value); 352 update->SetBooleanWithoutPathExpansion(user_id, value);
357 } 353 }
358 354
359 const User* SupervisedUserManagerImpl::FindByDisplayName( 355 const User* SupervisedUserManagerImpl::FindByDisplayName(
360 const base::string16& display_name) const { 356 const base::string16& display_name) const {
361 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 357 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
362 const UserList& users = owner_->GetUsers(); 358 const UserList& users = owner_->GetUsers();
363 for (UserList::const_iterator it = users.begin(); it != users.end(); ++it) { 359 for (UserList::const_iterator it = users.begin(); it != users.end(); ++it) {
364 if (((*it)->GetType() == user_manager::USER_TYPE_LOCALLY_MANAGED) && 360 if (((*it)->GetType() == user_manager::USER_TYPE_SUPERVISED) &&
365 ((*it)->display_name() == display_name)) { 361 ((*it)->display_name() == display_name)) {
366 return *it; 362 return *it;
367 } 363 }
368 } 364 }
369 return NULL; 365 return NULL;
370 } 366 }
371 367
372 const User* SupervisedUserManagerImpl::FindBySyncId( 368 const User* SupervisedUserManagerImpl::FindBySyncId(
373 const std::string& sync_id) const { 369 const std::string& sync_id) const {
374 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 370 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
375 const UserList& users = owner_->GetUsers(); 371 const UserList& users = owner_->GetUsers();
376 for (UserList::const_iterator it = users.begin(); it != users.end(); ++it) { 372 for (UserList::const_iterator it = users.begin(); it != users.end(); ++it) {
377 if (((*it)->GetType() == user_manager::USER_TYPE_LOCALLY_MANAGED) && 373 if (((*it)->GetType() == user_manager::USER_TYPE_SUPERVISED) &&
378 (GetUserSyncId((*it)->email()) == sync_id)) { 374 (GetUserSyncId((*it)->email()) == sync_id)) {
379 return *it; 375 return *it;
380 } 376 }
381 } 377 }
382 return NULL; 378 return NULL;
383 } 379 }
384 380
385 void SupervisedUserManagerImpl::StartCreationTransaction( 381 void SupervisedUserManagerImpl::StartCreationTransaction(
386 const base::string16& display_name) { 382 const base::string16& display_name) {
387 g_browser_process->local_state()-> 383 g_browser_process->local_state()->
388 SetString(kLocallyManagedUserCreationTransactionDisplayName, 384 SetString(kSupervisedUserCreationTransactionDisplayName,
389 base::UTF16ToASCII(display_name)); 385 base::UTF16ToASCII(display_name));
390 g_browser_process->local_state()->CommitPendingWrite(); 386 g_browser_process->local_state()->CommitPendingWrite();
391 } 387 }
392 388
393 void SupervisedUserManagerImpl::SetCreationTransactionUserId( 389 void SupervisedUserManagerImpl::SetCreationTransactionUserId(
394 const std::string& email) { 390 const std::string& email) {
395 g_browser_process->local_state()-> 391 g_browser_process->local_state()->
396 SetString(kLocallyManagedUserCreationTransactionUserId, 392 SetString(kSupervisedUserCreationTransactionUserId,
397 email); 393 email);
398 g_browser_process->local_state()->CommitPendingWrite(); 394 g_browser_process->local_state()->CommitPendingWrite();
399 } 395 }
400 396
401 void SupervisedUserManagerImpl::CommitCreationTransaction() { 397 void SupervisedUserManagerImpl::CommitCreationTransaction() {
402 g_browser_process->local_state()-> 398 g_browser_process->local_state()->
403 ClearPref(kLocallyManagedUserCreationTransactionDisplayName); 399 ClearPref(kSupervisedUserCreationTransactionDisplayName);
404 g_browser_process->local_state()-> 400 g_browser_process->local_state()->
405 ClearPref(kLocallyManagedUserCreationTransactionUserId); 401 ClearPref(kSupervisedUserCreationTransactionUserId);
406 g_browser_process->local_state()->CommitPendingWrite(); 402 g_browser_process->local_state()->CommitPendingWrite();
407 } 403 }
408 404
409 bool SupervisedUserManagerImpl::HasFailedUserCreationTransaction() { 405 bool SupervisedUserManagerImpl::HasFailedUserCreationTransaction() {
410 return !(g_browser_process->local_state()-> 406 return !(g_browser_process->local_state()->
411 GetString(kLocallyManagedUserCreationTransactionDisplayName). 407 GetString(kSupervisedUserCreationTransactionDisplayName).
412 empty()); 408 empty());
413 } 409 }
414 410
415 void SupervisedUserManagerImpl::RollbackUserCreationTransaction() { 411 void SupervisedUserManagerImpl::RollbackUserCreationTransaction() {
416 PrefService* prefs = g_browser_process->local_state(); 412 PrefService* prefs = g_browser_process->local_state();
417 413
418 std::string display_name = prefs-> 414 std::string display_name = prefs->
419 GetString(kLocallyManagedUserCreationTransactionDisplayName); 415 GetString(kSupervisedUserCreationTransactionDisplayName);
420 std::string user_id = prefs-> 416 std::string user_id = prefs->
421 GetString(kLocallyManagedUserCreationTransactionUserId); 417 GetString(kSupervisedUserCreationTransactionUserId);
422 418
423 LOG(WARNING) << "Cleaning up transaction for " 419 LOG(WARNING) << "Cleaning up transaction for "
424 << display_name << "/" << user_id; 420 << display_name << "/" << user_id;
425 421
426 if (user_id.empty()) { 422 if (user_id.empty()) {
427 // Not much to do - just remove transaction. 423 // Not much to do - just remove transaction.
428 prefs->ClearPref(kLocallyManagedUserCreationTransactionDisplayName); 424 prefs->ClearPref(kSupervisedUserCreationTransactionDisplayName);
429 prefs->CommitPendingWrite(); 425 prefs->CommitPendingWrite();
430 return; 426 return;
431 } 427 }
432 428
433 if (gaia::ExtractDomainName(user_id) != 429 if (gaia::ExtractDomainName(user_id) !=
434 chromeos::login::kLocallyManagedUserDomain) { 430 chromeos::login::kSupervisedUserDomain) {
435 LOG(WARNING) << "Clean up transaction for non-locally managed user found :" 431 LOG(WARNING) << "Clean up transaction for non-supervised user found :"
436 << user_id << ", will not remove data"; 432 << user_id << ", will not remove data";
437 prefs->ClearPref(kLocallyManagedUserCreationTransactionDisplayName); 433 prefs->ClearPref(kSupervisedUserCreationTransactionDisplayName);
438 prefs->ClearPref(kLocallyManagedUserCreationTransactionUserId); 434 prefs->ClearPref(kSupervisedUserCreationTransactionUserId);
439 prefs->CommitPendingWrite(); 435 prefs->CommitPendingWrite();
440 return; 436 return;
441 } 437 }
442 owner_->RemoveNonOwnerUserInternal(user_id, NULL); 438 owner_->RemoveNonOwnerUserInternal(user_id, NULL);
443 439
444 prefs->ClearPref(kLocallyManagedUserCreationTransactionDisplayName); 440 prefs->ClearPref(kSupervisedUserCreationTransactionDisplayName);
445 prefs->ClearPref(kLocallyManagedUserCreationTransactionUserId); 441 prefs->ClearPref(kSupervisedUserCreationTransactionUserId);
446 prefs->CommitPendingWrite(); 442 prefs->CommitPendingWrite();
447 } 443 }
448 444
449 void SupervisedUserManagerImpl::RemoveNonCryptohomeData( 445 void SupervisedUserManagerImpl::RemoveNonCryptohomeData(
450 const std::string& user_id) { 446 const std::string& user_id) {
451 PrefService* prefs = g_browser_process->local_state(); 447 PrefService* prefs = g_browser_process->local_state();
452 ListPrefUpdate prefs_new_users_update(prefs, kLocallyManagedUsersFirstRun); 448 ListPrefUpdate prefs_new_users_update(prefs, kSupervisedUsersFirstRun);
453 prefs_new_users_update->Remove(base::StringValue(user_id), NULL); 449 prefs_new_users_update->Remove(base::StringValue(user_id), NULL);
454 450
455 CleanPref(user_id, kSupervisedUserSyncId); 451 CleanPref(user_id, kSupervisedUserSyncId);
456 CleanPref(user_id, kSupervisedUserManagers); 452 CleanPref(user_id, kSupervisedUserManagers);
457 CleanPref(user_id, kSupervisedUserManagerNames); 453 CleanPref(user_id, kSupervisedUserManagerNames);
458 CleanPref(user_id, kSupervisedUserManagerDisplayEmails); 454 CleanPref(user_id, kSupervisedUserManagerDisplayEmails);
459 CleanPref(user_id, kSupervisedUserPasswordSalt); 455 CleanPref(user_id, kSupervisedUserPasswordSalt);
460 CleanPref(user_id, kSupervisedUserPasswordSchema); 456 CleanPref(user_id, kSupervisedUserPasswordSchema);
461 CleanPref(user_id, kSupervisedUserPasswordRevision); 457 CleanPref(user_id, kSupervisedUserPasswordRevision);
462 CleanPref(user_id, kSupervisedUserNeedPasswordUpdate); 458 CleanPref(user_id, kSupervisedUserNeedPasswordUpdate);
463 CleanPref(user_id, kSupervisedUserIncompleteKey); 459 CleanPref(user_id, kSupervisedUserIncompleteKey);
464 } 460 }
465 461
466 void SupervisedUserManagerImpl::CleanPref(const std::string& user_id, 462 void SupervisedUserManagerImpl::CleanPref(const std::string& user_id,
467 const char* key) { 463 const char* key) {
468 PrefService* prefs = g_browser_process->local_state(); 464 PrefService* prefs = g_browser_process->local_state();
469 DictionaryPrefUpdate dict_update(prefs, key); 465 DictionaryPrefUpdate dict_update(prefs, key);
470 dict_update->RemoveWithoutPathExpansion(user_id, NULL); 466 dict_update->RemoveWithoutPathExpansion(user_id, NULL);
471 } 467 }
472 468
473 bool SupervisedUserManagerImpl::CheckForFirstRun(const std::string& user_id) { 469 bool SupervisedUserManagerImpl::CheckForFirstRun(const std::string& user_id) {
474 ListPrefUpdate prefs_new_users_update(g_browser_process->local_state(), 470 ListPrefUpdate prefs_new_users_update(g_browser_process->local_state(),
475 kLocallyManagedUsersFirstRun); 471 kSupervisedUsersFirstRun);
476 return prefs_new_users_update->Remove(base::StringValue(user_id), NULL); 472 return prefs_new_users_update->Remove(base::StringValue(user_id), NULL);
477 } 473 }
478 474
479 void SupervisedUserManagerImpl::UpdateManagerName(const std::string& manager_id, 475 void SupervisedUserManagerImpl::UpdateManagerName(const std::string& manager_id,
480 const base::string16& new_display_name) { 476 const base::string16& new_display_name) {
481 PrefService* local_state = g_browser_process->local_state(); 477 PrefService* local_state = g_browser_process->local_state();
482 478
483 const base::DictionaryValue* manager_ids = 479 const base::DictionaryValue* manager_ids =
484 local_state->GetDictionary(kSupervisedUserManagers); 480 local_state->GetDictionary(kSupervisedUserManagers);
485 481
(...skipping 30 matching lines...) Expand all
516 } 512 }
517 513
518 void SupervisedUserManagerImpl::ConfigureSyncWithToken( 514 void SupervisedUserManagerImpl::ConfigureSyncWithToken(
519 Profile* profile, 515 Profile* profile,
520 const std::string& token) { 516 const std::string& token) {
521 if (!token.empty()) 517 if (!token.empty())
522 SupervisedUserServiceFactory::GetForProfile(profile)->InitSync(token); 518 SupervisedUserServiceFactory::GetForProfile(profile)->InitSync(token);
523 } 519 }
524 520
525 } // namespace chromeos 521 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/login/users/supervised_user_manager_impl.h ('k') | chrome/browser/chromeos/login/users/user.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698