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

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

Issue 335833003: Rename "managed (mode|user)" to "supervised user" (part 2) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: review comments (+ a few other cleanups) Created 6 years, 6 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/managed/locally_managed_user_constants.h "
19 #include "chrome/browser/chromeos/login/managed/supervised_user_authentication.h " 19 #include "chrome/browser/chromeos/login/managed/supervised_user_authentication.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/managed_mode/managed_user_service.h" 22 #include "chrome/browser/supervised_user/supervised_user_service.h"
23 #include "chrome/browser/managed_mode/managed_user_service_factory.h" 23 #include "chrome/browser/supervised_user/supervised_user_service_factory.h"
24 #include "chromeos/settings/cros_settings_names.h" 24 #include "chromeos/settings/cros_settings_names.h"
25 #include "content/public/browser/browser_thread.h" 25 #include "content/public/browser/browser_thread.h"
26 #include "google_apis/gaia/gaia_auth_util.h" 26 #include "google_apis/gaia/gaia_auth_util.h"
27 27
28 using content::BrowserThread; 28 using content::BrowserThread;
29 29
30 namespace { 30 namespace {
31 31
32 // Names for pref keys in Local State. 32 // Names for pref keys in Local State.
33 // A map from locally managed user local user id to sync user id. 33 // A map from locally managed user local user id to sync user id.
34 const char kManagedUserSyncId[] = 34 const char kSupervisedUserSyncId[] =
35 "ManagedUserSyncId"; 35 "ManagedUserSyncId";
36 36
37 // A map from locally managed user id to manager user id. 37 // A map from locally managed user id to manager user id.
38 const char kManagedUserManagers[] = 38 const char kSupervisedUserManagers[] =
39 "ManagedUserManagers"; 39 "ManagedUserManagers";
40 40
41 // A map from locally managed user id to manager display name. 41 // A map from locally managed user id to manager display name.
42 const char kManagedUserManagerNames[] = 42 const char kSupervisedUserManagerNames[] =
43 "ManagedUserManagerNames"; 43 "ManagedUserManagerNames";
44 44
45 // A map from locally managed user id to manager display e-mail. 45 // A map from locally managed user id to manager display e-mail.
46 const char kManagedUserManagerDisplayEmails[] = 46 const char kSupervisedUserManagerDisplayEmails[] =
47 "ManagedUserManagerDisplayEmails"; 47 "ManagedUserManagerDisplayEmails";
48 48
49 // A vector pref of the locally managed accounts defined on this device, that 49 // A vector pref of the locally managed accounts defined on this device, that
50 // had not logged in yet. 50 // had not logged in yet.
51 const char kLocallyManagedUsersFirstRun[] = "LocallyManagedUsersFirstRun"; 51 const char kLocallyManagedUsersFirstRun[] = "LocallyManagedUsersFirstRun";
52 52
53 // A pref of the next id for locally managed users generation. 53 // A pref of the next id for locally managed users generation.
54 const char kLocallyManagedUsersNextId[] = 54 const char kLocallyManagedUsersNextId[] =
55 "LocallyManagedUsersNextId"; 55 "LocallyManagedUsersNextId";
56 56
(...skipping 22 matching lines...) Expand all
79 const char kSupervisedUserNeedPasswordUpdate[] = 79 const char kSupervisedUserNeedPasswordUpdate[] =
80 "SupervisedUserNeedPasswordUpdate"; 80 "SupervisedUserNeedPasswordUpdate";
81 81
82 // A map from user id to flag indicating if cryptohome does not have signature 82 // A map from user id to flag indicating if cryptohome does not have signature
83 // key. 83 // key.
84 const char kSupervisedUserIncompleteKey[] = "SupervisedUserHasIncompleteKey"; 84 const char kSupervisedUserIncompleteKey[] = "SupervisedUserHasIncompleteKey";
85 85
86 std::string LoadSyncToken(base::FilePath profile_dir) { 86 std::string LoadSyncToken(base::FilePath profile_dir) {
87 std::string token; 87 std::string token;
88 base::FilePath token_file = 88 base::FilePath token_file =
89 profile_dir.Append(chromeos::kManagedUserTokenFilename); 89 profile_dir.Append(chromeos::kSupervisedUserTokenFilename);
90 VLOG(1) << "Loading" << token_file.value(); 90 VLOG(1) << "Loading" << token_file.value();
91 if (!base::ReadFileToString(token_file, &token)) 91 if (!base::ReadFileToString(token_file, &token))
92 return std::string(); 92 return std::string();
93 return token; 93 return token;
94 } 94 }
95 95
96 } // namespace 96 } // namespace
97 97
98 namespace chromeos { 98 namespace chromeos {
99 99
(...skipping 11 matching lines...) Expand all
111 const int kMinPasswordRevision = 1; 111 const int kMinPasswordRevision = 1;
112 112
113 // static 113 // static
114 void SupervisedUserManager::RegisterPrefs(PrefRegistrySimple* registry) { 114 void SupervisedUserManager::RegisterPrefs(PrefRegistrySimple* registry) {
115 registry->RegisterListPref(kLocallyManagedUsersFirstRun); 115 registry->RegisterListPref(kLocallyManagedUsersFirstRun);
116 registry->RegisterIntegerPref(kLocallyManagedUsersNextId, 0); 116 registry->RegisterIntegerPref(kLocallyManagedUsersNextId, 0);
117 registry->RegisterStringPref( 117 registry->RegisterStringPref(
118 kLocallyManagedUserCreationTransactionDisplayName, ""); 118 kLocallyManagedUserCreationTransactionDisplayName, "");
119 registry->RegisterStringPref( 119 registry->RegisterStringPref(
120 kLocallyManagedUserCreationTransactionUserId, ""); 120 kLocallyManagedUserCreationTransactionUserId, "");
121 registry->RegisterDictionaryPref(kManagedUserSyncId); 121 registry->RegisterDictionaryPref(kSupervisedUserSyncId);
122 registry->RegisterDictionaryPref(kManagedUserManagers); 122 registry->RegisterDictionaryPref(kSupervisedUserManagers);
123 registry->RegisterDictionaryPref(kManagedUserManagerNames); 123 registry->RegisterDictionaryPref(kSupervisedUserManagerNames);
124 registry->RegisterDictionaryPref(kManagedUserManagerDisplayEmails); 124 registry->RegisterDictionaryPref(kSupervisedUserManagerDisplayEmails);
125 125
126 registry->RegisterDictionaryPref(kSupervisedUserPasswordSchema); 126 registry->RegisterDictionaryPref(kSupervisedUserPasswordSchema);
127 registry->RegisterDictionaryPref(kSupervisedUserPasswordSalt); 127 registry->RegisterDictionaryPref(kSupervisedUserPasswordSalt);
128 registry->RegisterDictionaryPref(kSupervisedUserPasswordRevision); 128 registry->RegisterDictionaryPref(kSupervisedUserPasswordRevision);
129 129
130 registry->RegisterDictionaryPref(kSupervisedUserNeedPasswordUpdate); 130 registry->RegisterDictionaryPref(kSupervisedUserNeedPasswordUpdate);
131 registry->RegisterDictionaryPref(kSupervisedUserIncompleteKey); 131 registry->RegisterDictionaryPref(kSupervisedUserIncompleteKey);
132 } 132 }
133 133
134 SupervisedUserManagerImpl::SupervisedUserManagerImpl(UserManagerImpl* owner) 134 SupervisedUserManagerImpl::SupervisedUserManagerImpl(UserManagerImpl* owner)
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
190 CHECK(manager); 190 CHECK(manager);
191 191
192 PrefService* local_state = g_browser_process->local_state(); 192 PrefService* local_state = g_browser_process->local_state();
193 193
194 User* new_user = User::CreateLocallyManagedUser(local_user_id); 194 User* new_user = User::CreateLocallyManagedUser(local_user_id);
195 195
196 owner_->AddUserRecord(new_user); 196 owner_->AddUserRecord(new_user);
197 197
198 ListPrefUpdate prefs_new_users_update(local_state, 198 ListPrefUpdate prefs_new_users_update(local_state,
199 kLocallyManagedUsersFirstRun); 199 kLocallyManagedUsersFirstRun);
200 DictionaryPrefUpdate sync_id_update(local_state, kManagedUserSyncId); 200 DictionaryPrefUpdate sync_id_update(local_state, kSupervisedUserSyncId);
201 DictionaryPrefUpdate manager_update(local_state, kManagedUserManagers); 201 DictionaryPrefUpdate manager_update(local_state, kSupervisedUserManagers);
202 DictionaryPrefUpdate manager_name_update(local_state, 202 DictionaryPrefUpdate manager_name_update(local_state,
203 kManagedUserManagerNames); 203 kSupervisedUserManagerNames);
204 DictionaryPrefUpdate manager_email_update(local_state, 204 DictionaryPrefUpdate manager_email_update(
205 kManagedUserManagerDisplayEmails); 205 local_state,
206 kSupervisedUserManagerDisplayEmails);
206 207
207 prefs_new_users_update->Insert(0, new base::StringValue(local_user_id)); 208 prefs_new_users_update->Insert(0, new base::StringValue(local_user_id));
208 209
209 sync_id_update->SetWithoutPathExpansion(local_user_id, 210 sync_id_update->SetWithoutPathExpansion(local_user_id,
210 new base::StringValue(sync_user_id)); 211 new base::StringValue(sync_user_id));
211 manager_update->SetWithoutPathExpansion(local_user_id, 212 manager_update->SetWithoutPathExpansion(local_user_id,
212 new base::StringValue(manager->email())); 213 new base::StringValue(manager->email()));
213 manager_name_update->SetWithoutPathExpansion(local_user_id, 214 manager_name_update->SetWithoutPathExpansion(local_user_id,
214 new base::StringValue(manager->GetDisplayName())); 215 new base::StringValue(manager->GetDisplayName()));
215 manager_email_update->SetWithoutPathExpansion(local_user_id, 216 manager_email_update->SetWithoutPathExpansion(local_user_id,
216 new base::StringValue(manager->display_email())); 217 new base::StringValue(manager->display_email()));
217 218
218 owner_->SaveUserDisplayName(local_user_id, display_name); 219 owner_->SaveUserDisplayName(local_user_id, display_name);
219 220
220 g_browser_process->local_state()->CommitPendingWrite(); 221 g_browser_process->local_state()->CommitPendingWrite();
221 return new_user; 222 return new_user;
222 } 223 }
223 224
224 std::string SupervisedUserManagerImpl::GetUserSyncId(const std::string& user_id) 225 std::string SupervisedUserManagerImpl::GetUserSyncId(const std::string& user_id)
225 const { 226 const {
226 std::string result; 227 std::string result;
227 GetUserStringValue(user_id, kManagedUserSyncId, &result); 228 GetUserStringValue(user_id, kSupervisedUserSyncId, &result);
228 return result; 229 return result;
229 } 230 }
230 231
231 base::string16 SupervisedUserManagerImpl::GetManagerDisplayName( 232 base::string16 SupervisedUserManagerImpl::GetManagerDisplayName(
232 const std::string& user_id) const { 233 const std::string& user_id) const {
233 PrefService* local_state = g_browser_process->local_state(); 234 PrefService* local_state = g_browser_process->local_state();
234 const base::DictionaryValue* manager_names = 235 const base::DictionaryValue* manager_names =
235 local_state->GetDictionary(kManagedUserManagerNames); 236 local_state->GetDictionary(kSupervisedUserManagerNames);
236 base::string16 result; 237 base::string16 result;
237 if (manager_names->GetStringWithoutPathExpansion(user_id, &result) && 238 if (manager_names->GetStringWithoutPathExpansion(user_id, &result) &&
238 !result.empty()) 239 !result.empty())
239 return result; 240 return result;
240 return base::UTF8ToUTF16(GetManagerDisplayEmail(user_id)); 241 return base::UTF8ToUTF16(GetManagerDisplayEmail(user_id));
241 } 242 }
242 243
243 std::string SupervisedUserManagerImpl::GetManagerUserId( 244 std::string SupervisedUserManagerImpl::GetManagerUserId(
244 const std::string& user_id) const { 245 const std::string& user_id) const {
245 std::string result; 246 std::string result;
246 GetUserStringValue(user_id, kManagedUserManagers, &result); 247 GetUserStringValue(user_id, kSupervisedUserManagers, &result);
247 return result; 248 return result;
248 } 249 }
249 250
250 std::string SupervisedUserManagerImpl::GetManagerDisplayEmail( 251 std::string SupervisedUserManagerImpl::GetManagerDisplayEmail(
251 const std::string& user_id) const { 252 const std::string& user_id) const {
252 std::string result; 253 std::string result;
253 if (GetUserStringValue(user_id, kManagedUserManagerDisplayEmails, &result) && 254 if (GetUserStringValue(user_id,
255 kSupervisedUserManagerDisplayEmails,
256 &result) &&
254 !result.empty()) 257 !result.empty())
255 return result; 258 return result;
256 return GetManagerUserId(user_id); 259 return GetManagerUserId(user_id);
257 } 260 }
258 261
259 void SupervisedUserManagerImpl::GetPasswordInformation( 262 void SupervisedUserManagerImpl::GetPasswordInformation(
260 const std::string& user_id, 263 const std::string& user_id,
261 base::DictionaryValue* result) { 264 base::DictionaryValue* result) {
262 int value; 265 int value;
263 if (GetUserIntegerValue(user_id, kSupervisedUserPasswordSchema, &value)) 266 if (GetUserIntegerValue(user_id, kSupervisedUserPasswordSchema, &value))
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after
440 prefs->ClearPref(kLocallyManagedUserCreationTransactionUserId); 443 prefs->ClearPref(kLocallyManagedUserCreationTransactionUserId);
441 prefs->CommitPendingWrite(); 444 prefs->CommitPendingWrite();
442 } 445 }
443 446
444 void SupervisedUserManagerImpl::RemoveNonCryptohomeData( 447 void SupervisedUserManagerImpl::RemoveNonCryptohomeData(
445 const std::string& user_id) { 448 const std::string& user_id) {
446 PrefService* prefs = g_browser_process->local_state(); 449 PrefService* prefs = g_browser_process->local_state();
447 ListPrefUpdate prefs_new_users_update(prefs, kLocallyManagedUsersFirstRun); 450 ListPrefUpdate prefs_new_users_update(prefs, kLocallyManagedUsersFirstRun);
448 prefs_new_users_update->Remove(base::StringValue(user_id), NULL); 451 prefs_new_users_update->Remove(base::StringValue(user_id), NULL);
449 452
450 CleanPref(user_id, kManagedUserSyncId); 453 CleanPref(user_id, kSupervisedUserSyncId);
451 CleanPref(user_id, kManagedUserManagers); 454 CleanPref(user_id, kSupervisedUserManagers);
452 CleanPref(user_id, kManagedUserManagerNames); 455 CleanPref(user_id, kSupervisedUserManagerNames);
453 CleanPref(user_id, kManagedUserManagerDisplayEmails); 456 CleanPref(user_id, kSupervisedUserManagerDisplayEmails);
454 CleanPref(user_id, kSupervisedUserPasswordSalt); 457 CleanPref(user_id, kSupervisedUserPasswordSalt);
455 CleanPref(user_id, kSupervisedUserPasswordSchema); 458 CleanPref(user_id, kSupervisedUserPasswordSchema);
456 CleanPref(user_id, kSupervisedUserPasswordRevision); 459 CleanPref(user_id, kSupervisedUserPasswordRevision);
457 CleanPref(user_id, kSupervisedUserNeedPasswordUpdate); 460 CleanPref(user_id, kSupervisedUserNeedPasswordUpdate);
458 CleanPref(user_id, kSupervisedUserIncompleteKey); 461 CleanPref(user_id, kSupervisedUserIncompleteKey);
459 } 462 }
460 463
461 void SupervisedUserManagerImpl::CleanPref(const std::string& user_id, 464 void SupervisedUserManagerImpl::CleanPref(const std::string& user_id,
462 const char* key) { 465 const char* key) {
463 PrefService* prefs = g_browser_process->local_state(); 466 PrefService* prefs = g_browser_process->local_state();
464 DictionaryPrefUpdate dict_update(prefs, key); 467 DictionaryPrefUpdate dict_update(prefs, key);
465 dict_update->RemoveWithoutPathExpansion(user_id, NULL); 468 dict_update->RemoveWithoutPathExpansion(user_id, NULL);
466 } 469 }
467 470
468 bool SupervisedUserManagerImpl::CheckForFirstRun(const std::string& user_id) { 471 bool SupervisedUserManagerImpl::CheckForFirstRun(const std::string& user_id) {
469 ListPrefUpdate prefs_new_users_update(g_browser_process->local_state(), 472 ListPrefUpdate prefs_new_users_update(g_browser_process->local_state(),
470 kLocallyManagedUsersFirstRun); 473 kLocallyManagedUsersFirstRun);
471 return prefs_new_users_update->Remove(base::StringValue(user_id), NULL); 474 return prefs_new_users_update->Remove(base::StringValue(user_id), NULL);
472 } 475 }
473 476
474 void SupervisedUserManagerImpl::UpdateManagerName(const std::string& manager_id, 477 void SupervisedUserManagerImpl::UpdateManagerName(const std::string& manager_id,
475 const base::string16& new_display_name) { 478 const base::string16& new_display_name) {
476 PrefService* local_state = g_browser_process->local_state(); 479 PrefService* local_state = g_browser_process->local_state();
477 480
478 const base::DictionaryValue* manager_ids = 481 const base::DictionaryValue* manager_ids =
479 local_state->GetDictionary(kManagedUserManagers); 482 local_state->GetDictionary(kSupervisedUserManagers);
480 483
481 DictionaryPrefUpdate manager_name_update(local_state, 484 DictionaryPrefUpdate manager_name_update(local_state,
482 kManagedUserManagerNames); 485 kSupervisedUserManagerNames);
483 for (base::DictionaryValue::Iterator it(*manager_ids); !it.IsAtEnd(); 486 for (base::DictionaryValue::Iterator it(*manager_ids); !it.IsAtEnd();
484 it.Advance()) { 487 it.Advance()) {
485 std::string user_id; 488 std::string user_id;
486 bool has_manager_id = it.value().GetAsString(&user_id); 489 bool has_manager_id = it.value().GetAsString(&user_id);
487 DCHECK(has_manager_id); 490 DCHECK(has_manager_id);
488 if (user_id == manager_id) { 491 if (user_id == manager_id) {
489 manager_name_update->SetWithoutPathExpansion( 492 manager_name_update->SetWithoutPathExpansion(
490 it.key(), 493 it.key(),
491 new base::StringValue(new_display_name)); 494 new base::StringValue(new_display_name));
492 } 495 }
(...skipping 14 matching lines...) Expand all
507 content::BrowserThread::GetBlockingPool(), 510 content::BrowserThread::GetBlockingPool(),
508 FROM_HERE, 511 FROM_HERE,
509 base::Bind(&LoadSyncToken, profile_dir), 512 base::Bind(&LoadSyncToken, profile_dir),
510 callback); 513 callback);
511 } 514 }
512 515
513 void SupervisedUserManagerImpl::ConfigureSyncWithToken( 516 void SupervisedUserManagerImpl::ConfigureSyncWithToken(
514 Profile* profile, 517 Profile* profile,
515 const std::string& token) { 518 const std::string& token) {
516 if (!token.empty()) 519 if (!token.empty())
517 ManagedUserServiceFactory::GetForProfile(profile)->InitSync(token); 520 SupervisedUserServiceFactory::GetForProfile(profile)->InitSync(token);
518 } 521 }
519 522
520 } // namespace chromeos 523 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/login/managed/supervised_user_login_flow.cc ('k') | chrome/browser/chromeos/login/users/user.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698