1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "chrome/browser/chromeos/login/user_manager.h" 6 7 #include "base/command_line.h" 8 #include "chrome/browser/chromeos/login/user_manager_impl.h" 9 #include "chrome/common/chrome_switches.h" 10 11 namespace chromeos { 12 13 // static 14 const char UserManager::kStubUser[] = "stub-user (at) example.com"; 15 16 // static 17 // Should match cros constant in platform/libchromeos/chromeos/cryptohome.h 18 const char UserManager::kGuestUserName[] = "$guest"; 19 20 // static 21 const char UserManager::kLocallyManagedUserDomain[] = 22 "locally-managed.localhost"; 23 24 25 // static 26 const char UserManager::kRetailModeUserName[] = "demouser@"; 27 static UserManager* g_user_manager = NULL; 28 29 UserManager::Observer::~Observer() { 30 } 31 32 void UserManager::Observer::LocalStateChanged(UserManager* user_manager) { 33 } 34 35 void UserManager::UserSessionStateObserver::ActiveUserChanged( 36 const User* active_user) { 37 } 38 39 void UserManager::UserSessionStateObserver::UserAddedToSession( 40 const User* active_user) { 41 } 42 43 void UserManager::UserSessionStateObserver::ActiveUserHashChanged( 44 const std::string& hash) { 45 } 46 47 void UserManager::UserSessionStateObserver:: 48 PendingUserSessionsRestoreFinished() { 49 } 50 51 UserManager::UserSessionStateObserver::~UserSessionStateObserver() { 52 } 53 54 UserManager::UserAccountData::UserAccountData(const base::string16& display_name, 55 const base::string16& given_name, 56 const std::string& locale) 57 : display_name_(display_name), 58 given_name_(given_name), 59 locale_(locale) { 60 } 61 62 UserManager::UserAccountData::~UserAccountData() {} 63 64 // static 65 void UserManager::Initialize() { 66 CHECK(!g_user_manager); 67 g_user_manager = new UserManagerImpl(); 68 } 69 70 // static 71 bool UserManager::IsInitialized() { 72 return g_user_manager; 73 } 74 75 void UserManager::Destroy() { 76 DCHECK(g_user_manager); 77 delete g_user_manager; 78 g_user_manager = NULL; 79 } 80 81 // static 82 UserManager* UserManager::Get() { 83 CHECK(g_user_manager); 84 return g_user_manager; 85 } 86 87 // static 88 bool UserManager::IsMultipleProfilesAllowed() { 89 return CommandLine::ForCurrentProcess()->HasSwitch( 90 ::switches::kMultiProfiles); 91 } 92 93 UserManager::~UserManager() { 94 } 95 96 // static 97 UserManager* UserManager::SetForTesting(UserManager* user_manager) { 98 UserManager* previous_user_manager = g_user_manager; 99 g_user_manager = user_manager; 100 return previous_user_manager; 101 } 102 103 ScopedUserManagerEnabler::ScopedUserManagerEnabler(UserManager* user_manager) 104 : previous_user_manager_(UserManager::SetForTesting(user_manager)) { 105 } 106 107 ScopedUserManagerEnabler::~ScopedUserManagerEnabler() { 108 UserManager::Get()->Shutdown(); 109 UserManager::Destroy(); 110 UserManager::SetForTesting(previous_user_manager_); 111 } 112 113 ScopedTestUserManager::ScopedTestUserManager() { 114 UserManager::Initialize(); 115 } 116 117 ScopedTestUserManager::~ScopedTestUserManager() { 118 UserManager::Get()->Shutdown(); 119 UserManager::Destroy(); 120 } 121 122 } // namespace chromeos 123