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@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 ~Observer()29UserManager::Observer::~Observer() { 30 } 31 LocalStateChanged(UserManager * user_manager)32void UserManager::Observer::LocalStateChanged(UserManager* user_manager) { 33 } 34 ActiveUserChanged(const User * active_user)35void UserManager::UserSessionStateObserver::ActiveUserChanged( 36 const User* active_user) { 37 } 38 UserAddedToSession(const User * active_user)39void UserManager::UserSessionStateObserver::UserAddedToSession( 40 const User* active_user) { 41 } 42 ActiveUserHashChanged(const std::string & hash)43void UserManager::UserSessionStateObserver::ActiveUserHashChanged( 44 const std::string& hash) { 45 } 46 47 void UserManager::UserSessionStateObserver:: PendingUserSessionsRestoreFinished()48PendingUserSessionsRestoreFinished() { 49 } 50 ~UserSessionStateObserver()51UserManager::UserSessionStateObserver::~UserSessionStateObserver() { 52 } 53 UserAccountData(const base::string16 & display_name,const base::string16 & given_name,const std::string & locale)54UserManager::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 ~UserAccountData()62UserManager::UserAccountData::~UserAccountData() {} 63 64 // static Initialize()65void UserManager::Initialize() { 66 CHECK(!g_user_manager); 67 g_user_manager = new UserManagerImpl(); 68 } 69 70 // static IsInitialized()71bool UserManager::IsInitialized() { 72 return g_user_manager; 73 } 74 Destroy()75void UserManager::Destroy() { 76 DCHECK(g_user_manager); 77 delete g_user_manager; 78 g_user_manager = NULL; 79 } 80 81 // static Get()82UserManager* UserManager::Get() { 83 CHECK(g_user_manager); 84 return g_user_manager; 85 } 86 87 // static IsMultipleProfilesAllowed()88bool UserManager::IsMultipleProfilesAllowed() { 89 return CommandLine::ForCurrentProcess()->HasSwitch( 90 ::switches::kMultiProfiles); 91 } 92 ~UserManager()93UserManager::~UserManager() { 94 } 95 96 // static SetForTesting(UserManager * user_manager)97UserManager* 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 ScopedUserManagerEnabler(UserManager * user_manager)103ScopedUserManagerEnabler::ScopedUserManagerEnabler(UserManager* user_manager) 104 : previous_user_manager_(UserManager::SetForTesting(user_manager)) { 105 } 106 ~ScopedUserManagerEnabler()107ScopedUserManagerEnabler::~ScopedUserManagerEnabler() { 108 UserManager::Get()->Shutdown(); 109 UserManager::Destroy(); 110 UserManager::SetForTesting(previous_user_manager_); 111 } 112 ScopedTestUserManager()113ScopedTestUserManager::ScopedTestUserManager() { 114 UserManager::Initialize(); 115 } 116 ~ScopedTestUserManager()117ScopedTestUserManager::~ScopedTestUserManager() { 118 UserManager::Get()->Shutdown(); 119 UserManager::Destroy(); 120 } 121 122 } // namespace chromeos 123