| OLD | NEW |
| 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 29 matching lines...) Expand all Loading... |
| 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 const UserList& GetLoggedInUsers() const OVERRIDE; |
| 50 virtual const UserList& GetLRULoggedInUsers() OVERRIDE; |
| 50 virtual void UserLoggedIn(const std::string& email, | 51 virtual void UserLoggedIn(const std::string& email, |
| 51 const std::string& username_hash, | 52 const std::string& username_hash, |
| 52 bool browser_restart) OVERRIDE; | 53 bool browser_restart) OVERRIDE; |
| 53 virtual void SwitchActiveUser(const std::string& email) OVERRIDE; | 54 virtual void SwitchActiveUser(const std::string& email) OVERRIDE; |
| 54 virtual void SessionStarted() OVERRIDE; | 55 virtual void SessionStarted() OVERRIDE; |
| 55 virtual void RemoveUser(const std::string& email, | 56 virtual void RemoveUser(const std::string& email, |
| 56 RemoveUserDelegate* delegate) OVERRIDE; | 57 RemoveUserDelegate* delegate) OVERRIDE; |
| 57 virtual void RemoveUserFromList(const std::string& email) OVERRIDE; | 58 virtual void RemoveUserFromList(const std::string& email) OVERRIDE; |
| 58 virtual bool IsKnownUser(const std::string& email) const OVERRIDE; | 59 virtual bool IsKnownUser(const std::string& email) const OVERRIDE; |
| 59 virtual const User* FindUser(const std::string& email) const OVERRIDE; | 60 virtual const User* FindUser(const std::string& email) const OVERRIDE; |
| (...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 244 | 245 |
| 245 // Lazily creates default user flow. | 246 // Lazily creates default user flow. |
| 246 UserFlow* GetDefaultUserFlow() const; | 247 UserFlow* GetDefaultUserFlow() const; |
| 247 | 248 |
| 248 // Update the global LoginState. | 249 // Update the global LoginState. |
| 249 void UpdateLoginState(); | 250 void UpdateLoginState(); |
| 250 | 251 |
| 251 // Gets the list of public accounts defined in device settings. | 252 // Gets the list of public accounts defined in device settings. |
| 252 void ReadPublicAccounts(base::ListValue* public_accounts); | 253 void ReadPublicAccounts(base::ListValue* public_accounts); |
| 253 | 254 |
| 255 // Insert |user| at the front of the LRU user list.. |
| 256 void SetLRUUser(User* user); |
| 257 |
| 254 // Interface to the signed settings store. | 258 // Interface to the signed settings store. |
| 255 CrosSettings* cros_settings_; | 259 CrosSettings* cros_settings_; |
| 256 | 260 |
| 257 // Interface to device-local account definitions and associated policy. | 261 // Interface to device-local account definitions and associated policy. |
| 258 policy::DeviceLocalAccountPolicyService* device_local_account_policy_service_; | 262 policy::DeviceLocalAccountPolicyService* device_local_account_policy_service_; |
| 259 | 263 |
| 260 // True if users have been loaded from prefs already. | 264 // True if users have been loaded from prefs already. |
| 261 bool users_loaded_; | 265 bool users_loaded_; |
| 262 | 266 |
| 263 // List of all known users. User instances are owned by |this|. Regular users | 267 // List of all known users. User instances are owned by |this|. Regular users |
| 264 // are removed by |RemoveUserFromList|, public accounts by | 268 // are removed by |RemoveUserFromList|, public accounts by |
| 265 // |UpdateAndCleanUpPublicAccounts|. | 269 // |UpdateAndCleanUpPublicAccounts|. |
| 266 UserList users_; | 270 UserList users_; |
| 267 | 271 |
| 268 // List of all users that are logged in current session. These point to User | 272 // List of all users that are logged in current session. These point to User |
| 269 // instances in |users_|. Only one of them could be marked as active. | 273 // instances in |users_|. Only one of them could be marked as active. |
| 270 UserList logged_in_users_; | 274 UserList logged_in_users_; |
| 271 | 275 |
| 276 // A list of all users that are logged in the current session. In contrast to |
| 277 // |logged_in_users|, the order of this list is least recently used so that |
| 278 // the active user should always be the first one in the list. |
| 279 UserList lru_logged_in_users_; |
| 280 |
| 281 // The list which gets reported when the |lru_logged_in_users_| list is empty. |
| 282 UserList temp_single_logged_in_users_; |
| 283 |
| 272 // The logged-in user that is currently active in current session. | 284 // The logged-in user that is currently active in current session. |
| 273 // NULL until a user has logged in, then points to one | 285 // NULL until a user has logged in, then points to one |
| 274 // of the User instances in |users_|, the |guest_user_| instance or an | 286 // of the User instances in |users_|, the |guest_user_| instance or an |
| 275 // ephemeral user instance. | 287 // ephemeral user instance. |
| 276 User* active_user_; | 288 User* active_user_; |
| 277 | 289 |
| 278 // True if SessionStarted() has been called. | 290 // True if SessionStarted() has been called. |
| 279 bool session_started_; | 291 bool session_started_; |
| 280 | 292 |
| 281 // Cached flag of whether currently logged-in user is owner or not. | 293 // Cached flag of whether currently logged-in user is owner or not. |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 336 | 348 |
| 337 // Specific flows by user e-mail. | 349 // Specific flows by user e-mail. |
| 338 FlowMap specific_flows_; | 350 FlowMap specific_flows_; |
| 339 | 351 |
| 340 DISALLOW_COPY_AND_ASSIGN(UserManagerImpl); | 352 DISALLOW_COPY_AND_ASSIGN(UserManagerImpl); |
| 341 }; | 353 }; |
| 342 | 354 |
| 343 } // namespace chromeos | 355 } // namespace chromeos |
| 344 | 356 |
| 345 #endif // CHROME_BROWSER_CHROMEOS_LOGIN_USER_MANAGER_IMPL_H_ | 357 #endif // CHROME_BROWSER_CHROMEOS_LOGIN_USER_MANAGER_IMPL_H_ |
| OLD | NEW |