| Index: chrome/browser/chromeos/login/users/user_manager.h
|
| diff --git a/chrome/browser/chromeos/login/users/user_manager.h b/chrome/browser/chromeos/login/users/user_manager.h
|
| deleted file mode 100644
|
| index 8b2d961664c04858f6b7535865140cb8d85ee4ac..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/chromeos/login/users/user_manager.h
|
| +++ /dev/null
|
| @@ -1,353 +0,0 @@
|
| -// Copyright 2014 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#ifndef CHROME_BROWSER_CHROMEOS_LOGIN_USERS_USER_MANAGER_H_
|
| -#define CHROME_BROWSER_CHROMEOS_LOGIN_USERS_USER_MANAGER_H_
|
| -
|
| -#include <string>
|
| -
|
| -#include "chrome/browser/chromeos/login/user_flow.h"
|
| -#include "components/user_manager/user.h"
|
| -
|
| -class PrefRegistrySimple;
|
| -
|
| -namespace chromeos {
|
| -
|
| -class MultiProfileUserController;
|
| -class RemoveUserDelegate;
|
| -class UserImageManager;
|
| -class SupervisedUserManager;
|
| -
|
| -// Interface for UserManagerBase - provides a mechanism for discovering users
|
| -// who have logged into this Chrome OS device before and updating that list.
|
| -class UserManager {
|
| - public:
|
| - // Interface that observers of UserManager must implement in order
|
| - // to receive notification when local state preferences is changed
|
| - class Observer {
|
| - public:
|
| - // Called when the local state preferences is changed.
|
| - virtual void LocalStateChanged(UserManager* user_manager);
|
| -
|
| - protected:
|
| - virtual ~Observer();
|
| - };
|
| -
|
| - // TODO(nkostylev): Refactor and move this observer out of UserManager.
|
| - // Observer interface that defines methods used to notify on user session /
|
| - // active user state changes. Default implementation is empty.
|
| - class UserSessionStateObserver {
|
| - public:
|
| - // Called when active user has changed.
|
| - virtual void ActiveUserChanged(const user_manager::User* active_user);
|
| -
|
| - // Called when another user got added to the existing session.
|
| - virtual void UserAddedToSession(const user_manager::User* added_user);
|
| -
|
| - // Called right before notifying on user change so that those who rely
|
| - // on user_id hash would be accessing up-to-date value.
|
| - virtual void ActiveUserHashChanged(const std::string& hash);
|
| -
|
| - protected:
|
| - virtual ~UserSessionStateObserver();
|
| - };
|
| -
|
| - // Data retrieved from user account.
|
| - class UserAccountData {
|
| - public:
|
| - UserAccountData(const base::string16& display_name,
|
| - const base::string16& given_name,
|
| - const std::string& locale);
|
| - ~UserAccountData();
|
| - const base::string16& display_name() const { return display_name_; }
|
| - const base::string16& given_name() const { return given_name_; }
|
| - const std::string& locale() const { return locale_; }
|
| -
|
| - private:
|
| - const base::string16 display_name_;
|
| - const base::string16 given_name_;
|
| - const std::string locale_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(UserAccountData);
|
| - };
|
| -
|
| - // Creates the singleton instance. This method is not thread-safe and must be
|
| - // called from the main UI thread.
|
| - static void Initialize();
|
| -
|
| - // Checks whether the singleton instance has been created already. This method
|
| - // is not thread-safe and must be called from the main UI thread.
|
| - static bool IsInitialized();
|
| -
|
| - // Shuts down the UserManager. After this method has been called, the
|
| - // singleton has unregistered itself as an observer but remains available so
|
| - // that other classes can access it during their shutdown. This method is not
|
| - // thread-safe and must be called from the main UI thread.
|
| - virtual void Shutdown() = 0;
|
| -
|
| - // Destroys the singleton instance. Always call Shutdown() first. This method
|
| - // is not thread-safe and must be called from the main UI thread.
|
| - static void Destroy();
|
| -
|
| - // Returns the singleton instance or |NULL| if the singleton has either not
|
| - // been created yet or is already destroyed. This method is not thread-safe
|
| - // and must be called from the main UI thread.
|
| - static UserManager* Get();
|
| -
|
| - // Registers user manager preferences.
|
| - static void RegisterPrefs(PrefRegistrySimple* registry);
|
| -
|
| - virtual ~UserManager();
|
| -
|
| - virtual MultiProfileUserController* GetMultiProfileUserController() = 0;
|
| - virtual UserImageManager* GetUserImageManager(const std::string& user_id) = 0;
|
| - virtual SupervisedUserManager* GetSupervisedUserManager() = 0;
|
| -
|
| - // Returns a list of users who have logged into this device previously. This
|
| - // is sorted by last login date with the most recent user at the beginning.
|
| - virtual const user_manager::UserList& GetUsers() const = 0;
|
| -
|
| - // Returns list of users admitted for logging in into multi-profile session.
|
| - // Users that have a policy that prevents them from being added to the
|
| - // multi-profile session will still be part of this list as long as they
|
| - // are regular users (i.e. not a public session/supervised etc.).
|
| - // Returns an empty list in case when primary user is not a regular one or
|
| - // has a policy that prohibids it to be part of multi-profile session.
|
| - virtual user_manager::UserList GetUsersAdmittedForMultiProfile() const = 0;
|
| -
|
| - // Returns a list of users who are currently logged in.
|
| - virtual const user_manager::UserList& GetLoggedInUsers() const = 0;
|
| -
|
| - // Returns a list of users who are currently logged in in the LRU order -
|
| - // so the active user is the first one in the list. If there is no user logged
|
| - // in, the current user will be returned.
|
| - virtual const user_manager::UserList& GetLRULoggedInUsers() const = 0;
|
| -
|
| - // Returns a list of users who can unlock the device.
|
| - // This list is based on policy and whether user is able to do unlock.
|
| - // Policy:
|
| - // * If user has primary-only policy then it is the only user in unlock users.
|
| - // * Otherwise all users with unrestricted policy are added to this list.
|
| - // All users that are unable to perform unlock are excluded from this list.
|
| - virtual user_manager::UserList GetUnlockUsers() const = 0;
|
| -
|
| - // Returns the email of the owner user. Returns an empty string if there is
|
| - // no owner for the device.
|
| - virtual const std::string& GetOwnerEmail() const = 0;
|
| -
|
| - // Indicates that a user with the given |user_id| has just logged in. The
|
| - // persistent list is updated accordingly if the user is not ephemeral.
|
| - // |browser_restart| is true when reloading Chrome after crash to distinguish
|
| - // from normal sign in flow.
|
| - // |username_hash| is used to identify homedir mount point.
|
| - virtual void UserLoggedIn(const std::string& user_id,
|
| - const std::string& username_hash,
|
| - bool browser_restart) = 0;
|
| -
|
| - // Switches to active user identified by |user_id|. User has to be logged in.
|
| - virtual void SwitchActiveUser(const std::string& user_id) = 0;
|
| -
|
| - // Called when browser session is started i.e. after
|
| - // browser_creator.LaunchBrowser(...) was called after user sign in.
|
| - // When user is at the image screen IsUserLoggedIn() will return true
|
| - // but IsSessionStarted() will return false. During the kiosk splash screen,
|
| - // we perform additional initialization after the user is logged in but
|
| - // before the session has been started.
|
| - // Fires NOTIFICATION_SESSION_STARTED.
|
| - virtual void SessionStarted() = 0;
|
| -
|
| - // Removes the user from the device. Note, it will verify that the given user
|
| - // isn't the owner, so calling this method for the owner will take no effect.
|
| - // Note, |delegate| can be NULL.
|
| - virtual void RemoveUser(const std::string& user_id,
|
| - RemoveUserDelegate* delegate) = 0;
|
| -
|
| - // Removes the user from the persistent list only. Also removes the user's
|
| - // picture.
|
| - virtual void RemoveUserFromList(const std::string& user_id) = 0;
|
| -
|
| - // Returns true if a user with the given user id is found in the persistent
|
| - // list or currently logged in as ephemeral.
|
| - virtual bool IsKnownUser(const std::string& user_id) const = 0;
|
| -
|
| - // Returns the user with the given user id if found in the persistent
|
| - // list or currently logged in as ephemeral. Returns |NULL| otherwise.
|
| - virtual const user_manager::User* FindUser(
|
| - const std::string& user_id) const = 0;
|
| -
|
| - // Returns the user with the given user id if found in the persistent
|
| - // list or currently logged in as ephemeral. Returns |NULL| otherwise.
|
| - // Same as FindUser but returns non-const pointer to User object.
|
| - virtual user_manager::User* FindUserAndModify(const std::string& user_id) = 0;
|
| -
|
| - // Returns the logged-in user.
|
| - // TODO(nkostylev): Deprecate this call, move clients to GetActiveUser().
|
| - // http://crbug.com/230852
|
| - virtual const user_manager::User* GetLoggedInUser() const = 0;
|
| - virtual user_manager::User* GetLoggedInUser() = 0;
|
| -
|
| - // Returns the logged-in user that is currently active within this session.
|
| - // There could be multiple users logged in at the the same but for now
|
| - // we support only one of them being active.
|
| - virtual const user_manager::User* GetActiveUser() const = 0;
|
| - virtual user_manager::User* GetActiveUser() = 0;
|
| -
|
| - // Returns the primary user of the current session. It is recorded for the
|
| - // first signed-in user and does not change thereafter.
|
| - virtual const user_manager::User* GetPrimaryUser() const = 0;
|
| -
|
| - // Saves user's oauth token status in local state preferences.
|
| - virtual void SaveUserOAuthStatus(
|
| - const std::string& user_id,
|
| - user_manager::User::OAuthTokenStatus oauth_token_status) = 0;
|
| -
|
| - // Saves a flag indicating whether online authentication against GAIA should
|
| - // be enforced during the user's next sign-in.
|
| - virtual void SaveForceOnlineSignin(const std::string& user_id,
|
| - bool force_online_signin) = 0;
|
| -
|
| - // Saves user's displayed name in local state preferences.
|
| - // Ignored If there is no such user.
|
| - virtual void SaveUserDisplayName(const std::string& user_id,
|
| - const base::string16& display_name) = 0;
|
| -
|
| - // Updates data upon User Account download.
|
| - virtual void UpdateUserAccountData(const std::string& user_id,
|
| - const UserAccountData& account_data) = 0;
|
| -
|
| - // Returns the display name for user |user_id| if it is known (was
|
| - // previously set by a |SaveUserDisplayName| call).
|
| - // Otherwise, returns an empty string.
|
| - virtual base::string16 GetUserDisplayName(
|
| - const std::string& user_id) const = 0;
|
| -
|
| - // Saves user's displayed (non-canonical) email in local state preferences.
|
| - // Ignored If there is no such user.
|
| - virtual void SaveUserDisplayEmail(const std::string& user_id,
|
| - const std::string& display_email) = 0;
|
| -
|
| - // Returns the display email for user |user_id| if it is known (was
|
| - // previously set by a |SaveUserDisplayEmail| call).
|
| - // Otherwise, returns |user_id| itself.
|
| - virtual std::string GetUserDisplayEmail(
|
| - const std::string& user_id) const = 0;
|
| -
|
| - // Returns true if current user is an owner.
|
| - virtual bool IsCurrentUserOwner() const = 0;
|
| -
|
| - // Returns true if current user is not existing one (hasn't signed in before).
|
| - virtual bool IsCurrentUserNew() const = 0;
|
| -
|
| - // Returns true if data stored or cached for the current user outside that
|
| - // user's cryptohome (wallpaper, avatar, OAuth token status, display name,
|
| - // display email) is ephemeral.
|
| - virtual bool IsCurrentUserNonCryptohomeDataEphemeral() const = 0;
|
| -
|
| - // Returns true if the current user's session can be locked (i.e. the user has
|
| - // a password with which to unlock the session).
|
| - virtual bool CanCurrentUserLock() const = 0;
|
| -
|
| - // Returns true if at least one user has signed in.
|
| - virtual bool IsUserLoggedIn() const = 0;
|
| -
|
| - // Returns true if we're logged in as a regular user.
|
| - virtual bool IsLoggedInAsRegularUser() const = 0;
|
| -
|
| - // Returns true if we're logged in as a demo user.
|
| - virtual bool IsLoggedInAsDemoUser() const = 0;
|
| -
|
| - // Returns true if we're logged in as a public account.
|
| - virtual bool IsLoggedInAsPublicAccount() const = 0;
|
| -
|
| - // Returns true if we're logged in as a Guest.
|
| - virtual bool IsLoggedInAsGuest() const = 0;
|
| -
|
| - // Returns true if we're logged in as a supervised user.
|
| - virtual bool IsLoggedInAsSupervisedUser() const = 0;
|
| -
|
| - // Returns true if we're logged in as a kiosk app.
|
| - virtual bool IsLoggedInAsKioskApp() const = 0;
|
| -
|
| - // Returns true if we're logged in as the stub user used for testing on Linux.
|
| - virtual bool IsLoggedInAsStub() const = 0;
|
| -
|
| - // Returns true if we're logged in and browser has been started i.e.
|
| - // browser_creator.LaunchBrowser(...) was called after sign in
|
| - // or restart after crash.
|
| - virtual bool IsSessionStarted() const = 0;
|
| -
|
| - // Returns true if data stored or cached for the user with the given user id
|
| - // address outside that user's cryptohome (wallpaper, avatar, OAuth token
|
| - // status, display name, display email) is to be treated as ephemeral.
|
| - virtual bool IsUserNonCryptohomeDataEphemeral(
|
| - const std::string& user_id) const = 0;
|
| -
|
| - // Method that allows to set |flow| for user identified by |user_id|.
|
| - // Flow should be set before login attempt.
|
| - // Takes ownership of the |flow|, |flow| will be deleted in case of login
|
| - // failure.
|
| - virtual void SetUserFlow(const std::string& user_id, UserFlow* flow) = 0;
|
| -
|
| - // Return user flow for current user. Returns instance of DefaultUserFlow if
|
| - // no flow was defined for current user, or user is not logged in.
|
| - // Returned value should not be cached.
|
| - virtual UserFlow* GetCurrentUserFlow() const = 0;
|
| -
|
| - // Return user flow for user identified by |user_id|. Returns instance of
|
| - // DefaultUserFlow if no flow was defined for user.
|
| - // Returned value should not be cached.
|
| - virtual UserFlow* GetUserFlow(const std::string& user_id) const = 0;
|
| -
|
| - // Resets user flow for user identified by |user_id|.
|
| - virtual void ResetUserFlow(const std::string& user_id) = 0;
|
| -
|
| - virtual void AddObserver(Observer* obs) = 0;
|
| - virtual void RemoveObserver(Observer* obs) = 0;
|
| -
|
| - virtual void AddSessionStateObserver(UserSessionStateObserver* obs) = 0;
|
| - virtual void RemoveSessionStateObserver(UserSessionStateObserver* obs) = 0;
|
| -
|
| - virtual void NotifyLocalStateChanged() = 0;
|
| -
|
| - // Returns true if supervised users allowed.
|
| - virtual bool AreSupervisedUsersAllowed() const = 0;
|
| -
|
| - private:
|
| - friend class ScopedUserManagerEnabler;
|
| -
|
| - // Sets the singleton to the given |user_manager|, taking ownership. Returns
|
| - // the previous value of the singleton, passing ownership.
|
| - static UserManager* SetForTesting(UserManager* user_manager);
|
| -};
|
| -
|
| -// Helper class for unit tests. Initializes the UserManager singleton to the
|
| -// given |user_manager| and tears it down again on destruction. If the singleton
|
| -// had already been initialized, its previous value is restored after tearing
|
| -// down |user_manager|.
|
| -class ScopedUserManagerEnabler {
|
| - public:
|
| - // Takes ownership of |user_manager|.
|
| - explicit ScopedUserManagerEnabler(UserManager* user_manager);
|
| - ~ScopedUserManagerEnabler();
|
| -
|
| - private:
|
| - UserManager* previous_user_manager_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(ScopedUserManagerEnabler);
|
| -};
|
| -
|
| -// Helper class for unit tests. Initializes the UserManager singleton on
|
| -// construction and tears it down again on destruction.
|
| -class ScopedTestUserManager {
|
| - public:
|
| - ScopedTestUserManager();
|
| - ~ScopedTestUserManager();
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(ScopedTestUserManager);
|
| -};
|
| -
|
| -} // namespace chromeos
|
| -
|
| -#endif // CHROME_BROWSER_CHROMEOS_LOGIN_USERS_USER_MANAGER_H_
|
|
|