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

Side by Side Diff: chrome/browser/chromeos/login/user_manager_impl.h

Issue 14139003: Chrome OS multi-profiles backend and UI. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: move IsMultiProfilesEnabled() out of cros Created 7 years, 8 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 (c) 2012 The Chromium Authors. All rights reserved. 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 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 #ifndef CHROME_BROWSER_CHROMEOS_LOGIN_USER_MANAGER_IMPL_H_ 5 #ifndef CHROME_BROWSER_CHROMEOS_LOGIN_USER_MANAGER_IMPL_H_
6 #define CHROME_BROWSER_CHROMEOS_LOGIN_USER_MANAGER_IMPL_H_ 6 #define CHROME_BROWSER_CHROMEOS_LOGIN_USER_MANAGER_IMPL_H_
7 7
8 #include <map> 8 #include <map>
9 #include <string> 9 #include <string>
10 10
(...skipping 28 matching lines...) Expand all
39 public ProfileSyncServiceObserver, 39 public ProfileSyncServiceObserver,
40 public content::NotificationObserver, 40 public content::NotificationObserver,
41 public policy::DeviceLocalAccountPolicyService::Observer { 41 public policy::DeviceLocalAccountPolicyService::Observer {
42 public: 42 public:
43 virtual ~UserManagerImpl(); 43 virtual ~UserManagerImpl();
44 44
45 // UserManager implementation: 45 // UserManager implementation:
46 virtual void Shutdown() OVERRIDE; 46 virtual void Shutdown() OVERRIDE;
47 virtual UserImageManager* GetUserImageManager() OVERRIDE; 47 virtual UserImageManager* GetUserImageManager() OVERRIDE;
48 virtual const UserList& GetUsers() const OVERRIDE; 48 virtual const UserList& GetUsers() const OVERRIDE;
49 virtual const UserList& GetLoggedInUsers() const OVERRIDE;
49 virtual void UserLoggedIn(const std::string& email, 50 virtual void UserLoggedIn(const std::string& email,
50 const std::string& username_hash, 51 const std::string& username_hash,
51 bool browser_restart) OVERRIDE; 52 bool browser_restart) OVERRIDE;
53 virtual void SwitchActiveUser(const std::string& email) OVERRIDE;
52 virtual void RetailModeUserLoggedIn() OVERRIDE; 54 virtual void RetailModeUserLoggedIn() OVERRIDE;
53 virtual void GuestUserLoggedIn() OVERRIDE; 55 virtual void GuestUserLoggedIn() OVERRIDE;
54 virtual void KioskAppLoggedIn(const std::string& username) OVERRIDE; 56 virtual void KioskAppLoggedIn(const std::string& username) OVERRIDE;
55 virtual void LocallyManagedUserLoggedIn(const std::string& username) OVERRIDE; 57 virtual void LocallyManagedUserLoggedIn(const std::string& username) OVERRIDE;
56 virtual void PublicAccountUserLoggedIn(User* user) OVERRIDE; 58 virtual void PublicAccountUserLoggedIn(User* user) OVERRIDE;
57 virtual void RegularUserLoggedIn(const std::string& email, 59 virtual void RegularUserLoggedIn(const std::string& email,
58 bool browser_restart) OVERRIDE; 60 bool browser_restart) OVERRIDE;
59 virtual void RegularUserLoggedInAsEphemeral( 61 virtual void RegularUserLoggedInAsEphemeral(
60 const std::string& email) OVERRIDE; 62 const std::string& email) OVERRIDE;
61 virtual void SessionStarted() OVERRIDE; 63 virtual void SessionStarted() OVERRIDE;
62 virtual void RemoveUser(const std::string& email, 64 virtual void RemoveUser(const std::string& email,
63 RemoveUserDelegate* delegate) OVERRIDE; 65 RemoveUserDelegate* delegate) OVERRIDE;
64 virtual void RemoveUserFromList(const std::string& email) OVERRIDE; 66 virtual void RemoveUserFromList(const std::string& email) OVERRIDE;
65 virtual bool IsKnownUser(const std::string& email) const OVERRIDE; 67 virtual bool IsKnownUser(const std::string& email) const OVERRIDE;
66 virtual const User* FindUser(const std::string& email) const OVERRIDE; 68 virtual const User* FindUser(const std::string& email) const OVERRIDE;
67 virtual const User* FindLocallyManagedUser( 69 virtual const User* FindLocallyManagedUser(
68 const string16& display_name) const OVERRIDE; 70 const string16& display_name) const OVERRIDE;
69 virtual const User* GetLoggedInUser() const OVERRIDE; 71 virtual const User* GetLoggedInUser() const OVERRIDE;
70 virtual User* GetLoggedInUser() OVERRIDE; 72 virtual User* GetLoggedInUser() OVERRIDE;
73 virtual const User* GetActiveUser() const OVERRIDE;
74 virtual User* GetActiveUser() OVERRIDE;
71 virtual void SaveUserOAuthStatus( 75 virtual void SaveUserOAuthStatus(
72 const std::string& username, 76 const std::string& username,
73 User::OAuthTokenStatus oauth_token_status) OVERRIDE; 77 User::OAuthTokenStatus oauth_token_status) OVERRIDE;
74 virtual void SaveUserDisplayName(const std::string& username, 78 virtual void SaveUserDisplayName(const std::string& username,
75 const string16& display_name) OVERRIDE; 79 const string16& display_name) OVERRIDE;
76 virtual string16 GetUserDisplayName( 80 virtual string16 GetUserDisplayName(
77 const std::string& username) const OVERRIDE; 81 const std::string& username) const OVERRIDE;
78 virtual void SaveUserDisplayEmail(const std::string& username, 82 virtual void SaveUserDisplayEmail(const std::string& username,
79 const std::string& display_email) OVERRIDE; 83 const std::string& display_email) OVERRIDE;
80 virtual std::string GetUserDisplayEmail( 84 virtual std::string GetUserDisplayEmail(
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
146 150
147 // Retrieves trusted device policies and removes users from the persistent 151 // Retrieves trusted device policies and removes users from the persistent
148 // list if ephemeral users are enabled. Schedules a callback to itself if 152 // list if ephemeral users are enabled. Schedules a callback to itself if
149 // trusted device policies are not yet available. 153 // trusted device policies are not yet available.
150 void RetrieveTrustedDevicePolicies(); 154 void RetrieveTrustedDevicePolicies();
151 155
152 // Returns true if trusted device policies have successfully been retrieved 156 // Returns true if trusted device policies have successfully been retrieved
153 // and ephemeral users are enabled. 157 // and ephemeral users are enabled.
154 bool AreEphemeralUsersEnabled() const; 158 bool AreEphemeralUsersEnabled() const;
155 159
160 // Returns a list of users who have logged into this device previously.
161 // Same as GetUsers but used if you need to modify User from that list.
162 UserList& GetUsersAndModify();
163
164 // Returns the user with the given email address if found in the persistent
165 // list or currently logged in as ephemeral. Returns |NULL| otherwise.
166 // Same as FindUser but returns non-const pointer to User object.
167 User* FindUserAndModify(const std::string& email);
168
156 // Returns the user with the given email address if found in the persistent 169 // Returns the user with the given email address if found in the persistent
157 // list. Returns |NULL| otherwise. 170 // list. Returns |NULL| otherwise.
158 const User* FindUserInList(const std::string& email) const; 171 const User* FindUserInList(const std::string& email) const;
159 172
160 // Notifies that new user session has started. 173 // Same as FindUserInList but returns non-const pointer to User object.
174 User* FindUserInListAndModify(const std::string& email);
175
176 // Notifies that user has logged in.
177 // Sends NOTIFICATION_LOGIN_USER_CHANGED notification.
161 void NotifyOnLogin(); 178 void NotifyOnLogin();
162 179
163 // Reads user's oauth token status from local state preferences. 180 // Reads user's oauth token status from local state preferences.
164 User::OAuthTokenStatus LoadUserOAuthStatus(const std::string& username) const; 181 User::OAuthTokenStatus LoadUserOAuthStatus(const std::string& username) const;
165 182
166 void SetCurrentUserIsOwner(bool is_current_user_owner); 183 void SetCurrentUserIsOwner(bool is_current_user_owner);
167 184
168 // Updates current user ownership on UI thread. 185 // Updates current user ownership on UI thread.
169 void UpdateOwnership(DeviceSettingsService::OwnershipStatus status, 186 void UpdateOwnership(DeviceSettingsService::OwnershipStatus status,
170 bool is_owner); 187 bool is_owner);
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
214 policy::DeviceLocalAccountPolicyService* device_local_account_policy_service_; 231 policy::DeviceLocalAccountPolicyService* device_local_account_policy_service_;
215 232
216 // True if users have been loaded from prefs already. 233 // True if users have been loaded from prefs already.
217 bool users_loaded_; 234 bool users_loaded_;
218 235
219 // List of all known users. User instances are owned by |this|. Regular users 236 // List of all known users. User instances are owned by |this|. Regular users
220 // are removed by |RemoveUserFromList|, public accounts by 237 // are removed by |RemoveUserFromList|, public accounts by
221 // |UpdateAndCleanUpPublicAccounts|. 238 // |UpdateAndCleanUpPublicAccounts|.
222 UserList users_; 239 UserList users_;
223 240
224 // The logged-in user. NULL until a user has logged in, then points to one 241 // List of all users that are logged in current session. These point to User
242 // instances in |users_|. Only one of them could be marked as active.
243 UserList logged_in_users_;
244
245 // The logged-in user that is currently active in current session.
246 // NULL until a user has logged in, then points to one
225 // of the User instances in |users_|, the |guest_user_| instance or an 247 // of the User instances in |users_|, the |guest_user_| instance or an
226 // ephemeral user instance. 248 // ephemeral user instance.
227 User* logged_in_user_; 249 User* active_user_;
228 250
229 // True if SessionStarted() has been called. 251 // True if SessionStarted() has been called.
230 bool session_started_; 252 bool session_started_;
231 253
232 // Cached flag of whether currently logged-in user is owner or not. 254 // Cached flag of whether currently logged-in user is owner or not.
233 // May be accessed on different threads, requires locking. 255 // May be accessed on different threads, requires locking.
234 bool is_current_user_owner_; 256 bool is_current_user_owner_;
235 mutable base::Lock is_current_user_owner_lock_; 257 mutable base::Lock is_current_user_owner_lock_;
236 258
237 // Cached flag of whether the currently logged-in user existed before this 259 // Cached flag of whether the currently logged-in user existed before this
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
283 305
284 // Specific flows by user e-mail. 306 // Specific flows by user e-mail.
285 FlowMap specific_flows_; 307 FlowMap specific_flows_;
286 308
287 DISALLOW_COPY_AND_ASSIGN(UserManagerImpl); 309 DISALLOW_COPY_AND_ASSIGN(UserManagerImpl);
288 }; 310 };
289 311
290 } // namespace chromeos 312 } // namespace chromeos
291 313
292 #endif // CHROME_BROWSER_CHROMEOS_LOGIN_USER_MANAGER_IMPL_H_ 314 #endif // CHROME_BROWSER_CHROMEOS_LOGIN_USER_MANAGER_IMPL_H_
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/login/user_manager.h ('k') | chrome/browser/chromeos/login/user_manager_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698