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