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

Unified Diff: components/user_manager/user_manager_base.h

Issue 1412813003: This CL replaces user_manager::UserID with AccountId. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@468875--Chrome-OS-handles-deletion-of-Gmail-account-poorly--Create-AccountID-structure-part2--user_names
Patch Set: Rebased. Created 5 years, 2 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 side-by-side diff with in-line comments
Download patch
Index: components/user_manager/user_manager_base.h
diff --git a/components/user_manager/user_manager_base.h b/components/user_manager/user_manager_base.h
index a5f5f8fe4f24d7fc0f0ffdf5272c31656f7a033a..74926bc8b6d06db6c0f71a7946ef4c9ab58bf4fb 100644
--- a/components/user_manager/user_manager_base.h
+++ b/components/user_manager/user_manager_base.h
@@ -15,12 +15,13 @@
#include "base/observer_list.h"
#include "base/synchronization/lock.h"
#include "base/time/time.h"
+#include "components/signin/core/account_id/account_id.h"
#include "components/user_manager/user.h"
-#include "components/user_manager/user_id.h"
#include "components/user_manager/user_manager.h"
#include "components/user_manager/user_manager_export.h"
#include "components/user_manager/user_type.h"
+class AccountId;
class PrefService;
class PrefRegistrySimple;
@@ -51,37 +52,37 @@ class USER_MANAGER_EXPORT UserManagerBase : public UserManager {
const UserList& GetUsers() const override;
const UserList& GetLoggedInUsers() const override;
const UserList& GetLRULoggedInUsers() const override;
- const std::string& GetOwnerEmail() const override;
- void UserLoggedIn(const std::string& user_id,
+ const AccountId& GetOwnerId() const override;
+ void UserLoggedIn(const AccountId& user_id,
const std::string& user_id_hash,
bool browser_restart) override;
- void SwitchActiveUser(const std::string& user_id) override;
+ void SwitchActiveUser(const AccountId& user_id) override;
void SwitchToLastActiveUser() override;
void SessionStarted() override;
- void RemoveUser(const std::string& user_id,
+ void RemoveUser(const AccountId& user_id,
RemoveUserDelegate* delegate) override;
- void RemoveUserFromList(const std::string& user_id) override;
- bool IsKnownUser(const std::string& user_id) const override;
- const User* FindUser(const std::string& user_id) const override;
- User* FindUserAndModify(const std::string& user_id) override;
+ void RemoveUserFromList(const AccountId& user_id) override;
+ bool IsKnownUser(const AccountId& user_id) const override;
+ const User* FindUser(const AccountId& user_id) const override;
+ User* FindUserAndModify(const AccountId& user_id) override;
const User* GetLoggedInUser() const override;
User* GetLoggedInUser() override;
const User* GetActiveUser() const override;
User* GetActiveUser() override;
const User* GetPrimaryUser() const override;
- void SaveUserOAuthStatus(const std::string& user_id,
+ void SaveUserOAuthStatus(const AccountId& user_id,
User::OAuthTokenStatus oauth_token_status) override;
- void SaveForceOnlineSignin(const std::string& user_id,
+ void SaveForceOnlineSignin(const AccountId& user_id,
bool force_online_signin) override;
- void SaveUserDisplayName(const std::string& user_id,
+ void SaveUserDisplayName(const AccountId& user_id,
const base::string16& display_name) override;
- base::string16 GetUserDisplayName(const std::string& user_id) const override;
- void SaveUserDisplayEmail(const std::string& user_id,
+ base::string16 GetUserDisplayName(const AccountId& user_id) const override;
+ void SaveUserDisplayEmail(const AccountId& user_id,
const std::string& display_email) override;
- std::string GetUserDisplayEmail(const std::string& user_id) const override;
- void SaveUserType(const std::string& user_id,
+ std::string GetUserDisplayEmail(const AccountId& user_id) const override;
+ void SaveUserType(const AccountId& user_id,
const UserType& user_type) override;
- void UpdateUserAccountData(const std::string& user_id,
+ void UpdateUserAccountData(const AccountId& user_id,
const UserAccountData& account_data) override;
bool IsCurrentUserOwner() const override;
bool IsCurrentUserNew() const override;
@@ -97,7 +98,7 @@ class USER_MANAGER_EXPORT UserManagerBase : public UserManager {
bool IsLoggedInAsStub() const override;
bool IsSessionStarted() const override;
bool IsUserNonCryptohomeDataEphemeral(
- const std::string& user_id) const override;
+ const AccountId& user_id) const override;
void AddObserver(UserManager::Observer* obs) override;
void RemoveObserver(UserManager::Observer* obs) override;
void AddSessionStateObserver(
@@ -106,58 +107,59 @@ class USER_MANAGER_EXPORT UserManagerBase : public UserManager {
UserManager::UserSessionStateObserver* obs) override;
void NotifyLocalStateChanged() override;
void ChangeUserChildStatus(User* user, bool is_child) override;
- bool FindKnownUserPrefs(const UserID& user_id,
+ bool FindKnownUserPrefs(const AccountId& user_id,
const base::DictionaryValue** out_value) override;
- void UpdateKnownUserPrefs(const UserID& user_id,
+ void UpdateKnownUserPrefs(const AccountId& user_id,
const base::DictionaryValue& values,
bool clear) override;
- bool GetKnownUserStringPref(const UserID& user_id,
+ bool GetKnownUserStringPref(const AccountId& user_id,
const std::string& path,
std::string* out_value) override;
- void SetKnownUserStringPref(const UserID& user_id,
+ void SetKnownUserStringPref(const AccountId& user_id,
const std::string& path,
const std::string& in_value) override;
- bool GetKnownUserBooleanPref(const UserID& user_id,
+ bool GetKnownUserBooleanPref(const AccountId& user_id,
const std::string& path,
bool* out_value) override;
- void SetKnownUserBooleanPref(const UserID& user_id,
+ void SetKnownUserBooleanPref(const AccountId& user_id,
const std::string& path,
const bool in_value) override;
- bool GetKnownUserIntegerPref(const UserID& user_id,
+ bool GetKnownUserIntegerPref(const AccountId& user_id,
const std::string& path,
int* out_value) override;
- void SetKnownUserIntegerPref(const UserID& user_id,
+ void SetKnownUserIntegerPref(const AccountId& user_id,
const std::string& path,
const int in_value) override;
- bool GetKnownUserCanonicalEmail(const UserID& user_id,
- std::string* out_email) override;
- void UpdateGaiaID(const UserID& user_id, const std::string& gaia_id) override;
- bool FindGaiaID(const UserID& user_id, std::string* out_value) override;
- void UpdateUsingSAML(const std::string& user_id,
+ bool GetKnownUserAccountId(const AccountId& authenticated_id,
+ AccountId* out_id) override;
+ void UpdateGaiaID(const AccountId& user_id,
+ const std::string& gaia_id) override;
+ bool FindGaiaID(const AccountId& user_id, std::string* out_value) override;
+ void UpdateUsingSAML(const AccountId& user_id,
const bool using_saml) override;
- bool FindUsingSAML(const std::string& user_id) override;
- void SetKnownUserDeviceId(const UserID& user_id,
+ bool FindUsingSAML(const AccountId& user_id) override;
+ void SetKnownUserDeviceId(const AccountId& user_id,
const std::string& device_id) override;
- std::string GetKnownUserDeviceId(const UserID& user_id) override;
- void SetKnownUserGAPSCookie(const UserID& user_id,
+ std::string GetKnownUserDeviceId(const AccountId& user_id) override;
+ void SetKnownUserGAPSCookie(const AccountId& user_id,
const std::string& gaps_cookie) override;
- std::string GetKnownUserGAPSCookie(const UserID& user_id) override;
- void UpdateReauthReason(const std::string& user_id,
+ std::string GetKnownUserGAPSCookie(const AccountId& user_id) override;
+ void UpdateReauthReason(const AccountId& user_id,
const int reauth_reason) override;
- bool FindReauthReason(const std::string& user_id, int* out_value) override;
+ bool FindReauthReason(const AccountId& user_id, int* out_value) override;
virtual void SetIsCurrentUserNew(bool is_new);
// TODO(xiyuan): Figure out a better way to expose this info.
- virtual bool HasPendingBootstrap(const std::string& user_id) const;
+ virtual bool HasPendingBootstrap(const AccountId& user_id) const;
// Helper function that copies users from |users_list| to |users_vector| and
// |users_set|. Duplicates and users already present in |existing_users| are
// skipped.
static void ParseUserList(const base::ListValue& users_list,
- const std::set<std::string>& existing_users,
- std::vector<std::string>* users_vector,
- std::set<std::string>* users_set);
+ const std::set<AccountId>& existing_users,
+ std::vector<AccountId>* users_vector,
+ std::set<AccountId>* users_set);
// Returns true if trusted device policies have successfully been retrieved
// and ephemeral users are enabled.
@@ -187,7 +189,7 @@ class USER_MANAGER_EXPORT UserManagerBase : public UserManager {
// Handle OAuth token |status| change for |user_id|.
virtual void HandleUserOAuthTokenStatusChange(
- const std::string& user_id,
+ const AccountId& user_id,
User::OAuthTokenStatus status) const = 0;
// Returns true if device is enterprise managed.
@@ -198,8 +200,7 @@ class USER_MANAGER_EXPORT UserManagerBase : public UserManager {
// skipped.
// Loads public accounts from the Local state and fills in
// |public_sessions_set|.
- virtual void LoadPublicAccounts(
- std::set<std::string>* public_sessions_set) = 0;
+ virtual void LoadPublicAccounts(std::set<AccountId>* public_sessions_set) = 0;
// Notifies that user has logged in.
virtual void NotifyOnLogin();
@@ -224,36 +225,36 @@ class USER_MANAGER_EXPORT UserManagerBase : public UserManager {
// Implementation for RemoveUser method. It is synchronous. It is called from
// RemoveUserInternal after owner check.
- virtual void RemoveNonOwnerUserInternal(const std::string& user_email,
+ virtual void RemoveNonOwnerUserInternal(const AccountId& user_id,
RemoveUserDelegate* delegate);
// Removes a regular or supervised user from the user list.
// Returns the user if found or NULL otherwise.
// Also removes the user from the persistent user list.
- User* RemoveRegularOrSupervisedUserFromList(const std::string& user_id);
+ User* RemoveRegularOrSupervisedUserFromList(const AccountId& user_id);
// Implementation for RemoveUser method. This is an asynchronous part of the
// method, that verifies that owner will not get deleted, and calls
// |RemoveNonOwnerUserInternal|.
- virtual void RemoveUserInternal(const std::string& user_email,
+ virtual void RemoveUserInternal(const AccountId& user_id,
RemoveUserDelegate* delegate);
// Removes data stored or cached outside the user's cryptohome (wallpaper,
// avatar, OAuth token status, display name, display email).
- virtual void RemoveNonCryptohomeData(const std::string& user_id);
+ virtual void RemoveNonCryptohomeData(const AccountId& user_id);
// Check for a particular user type.
// Returns true if |user_id| represents demo app.
- virtual bool IsDemoApp(const std::string& user_id) const = 0;
+ virtual bool IsDemoApp(const AccountId& user_id) const = 0;
// Returns true if |user_id| represents kiosk app.
- virtual bool IsKioskApp(const std::string& user_id) const = 0;
+ virtual bool IsKioskApp(const AccountId& user_id) const = 0;
// Returns true if |user_id| represents public account that has been marked
// for deletion.
virtual bool IsPublicAccountMarkedForRemoval(
- const std::string& user_id) const = 0;
+ const AccountId& user_id) const = 0;
// These methods are called when corresponding user type has signed in.
@@ -264,22 +265,22 @@ class USER_MANAGER_EXPORT UserManagerBase : public UserManager {
virtual void GuestUserLoggedIn();
// Indicates that a kiosk app robot just logged in.
- virtual void KioskAppLoggedIn(const std::string& app_id) = 0;
+ virtual void KioskAppLoggedIn(const AccountId& app_id) = 0;
// Indicates that a user just logged into a public session.
virtual void PublicAccountUserLoggedIn(User* user) = 0;
// Indicates that a regular user just logged in.
- virtual void RegularUserLoggedIn(const std::string& user_id);
+ virtual void RegularUserLoggedIn(const AccountId& user_id);
// Indicates that a regular user just logged in as ephemeral.
- virtual void RegularUserLoggedInAsEphemeral(const std::string& user_id);
+ virtual void RegularUserLoggedInAsEphemeral(const AccountId& user_id);
// Indicates that a supervised user just logged in.
- virtual void SupervisedUserLoggedIn(const std::string& user_id) = 0;
+ virtual void SupervisedUserLoggedIn(const AccountId& user_id) = 0;
// Should be called when regular user was removed.
- virtual void OnUserRemoved(const std::string& user_id) = 0;
+ virtual void OnUserRemoved(const AccountId& user_id) = 0;
// Getters/setters for private members.
@@ -288,10 +289,10 @@ class USER_MANAGER_EXPORT UserManagerBase : public UserManager {
virtual bool GetEphemeralUsersEnabled() const;
virtual void SetEphemeralUsersEnabled(bool enabled);
- virtual void SetOwnerEmail(const std::string& owner_user_id);
+ virtual void SetOwnerId(const AccountId& owner_user_id);
- virtual const std::string& GetPendingUserSwitchID() const;
- virtual void SetPendingUserSwitchID(const std::string& user_id);
+ virtual const AccountId& GetPendingUserSwitchID() const;
+ virtual void SetPendingUserSwitchId(const AccountId& user_id);
// The logged-in user that is currently active in current session.
// NULL until a user has logged in, then points to one
@@ -328,21 +329,21 @@ class USER_MANAGER_EXPORT UserManagerBase : public UserManager {
// Returns the user with the given email address if found in the persistent
// list. Returns |NULL| otherwise.
- const User* FindUserInList(const std::string& user_id) const;
+ const User* FindUserInList(const AccountId& user_id) const;
// Returns |true| if user with the given id is found in the persistent list.
// Returns |false| otherwise. Does not trigger user loading.
- bool UserExistsInList(const std::string& user_id) const;
+ bool UserExistsInList(const AccountId& user_id) const;
// Same as FindUserInList but returns non-const pointer to User object.
- User* FindUserInListAndModify(const std::string& user_id);
+ User* FindUserInListAndModify(const AccountId& user_id);
// Reads user's oauth token status from local state preferences.
- User::OAuthTokenStatus LoadUserOAuthStatus(const std::string& user_id) const;
+ User::OAuthTokenStatus LoadUserOAuthStatus(const AccountId& user_id) const;
// Read a flag indicating whether online authentication against GAIA should
// be enforced during the user's next sign-in from local state preferences.
- bool LoadForceOnlineSignin(const std::string& user_id) const;
+ bool LoadForceOnlineSignin(const AccountId& user_id) const;
// Notifies observers that merge session state had changed.
void NotifyMergeSessionStateChanged();
@@ -360,18 +361,18 @@ class USER_MANAGER_EXPORT UserManagerBase : public UserManager {
void SetLRUUser(User* user);
// Sends metrics in response to a user with gaia account (regular) logging in.
- void SendGaiaUserLoginMetrics(const std::string& user_id);
+ void SendGaiaUserLoginMetrics(const AccountId& user_id);
// Sets account locale for user with id |user_id|.
- virtual void UpdateUserAccountLocale(const std::string& user_id,
+ virtual void UpdateUserAccountLocale(const AccountId& user_id,
const std::string& locale);
// Updates user account after locale was resolved.
- void DoUpdateAccountLocale(const std::string& user_id,
+ void DoUpdateAccountLocale(const AccountId& user_id,
scoped_ptr<std::string> resolved_locale);
// Removes all user preferences associated with |user_id|.
- void RemoveKnownUserPrefs(const UserID& user_id);
+ void RemoveKnownUserPrefs(const AccountId& user_id);
// Indicates stage of loading user from prefs.
UserLoadStage user_loading_stage_;
@@ -400,9 +401,9 @@ class USER_MANAGER_EXPORT UserManagerBase : public UserManager {
// policy yet.
bool ephemeral_users_enabled_;
- // Cached name of device owner. Defaults to empty string if the value has not
+ // Cached name of device owner. Defaults to empty if the value has not
// been read from trusted device policy yet.
- std::string owner_email_;
+ AccountId owner_id_;
achuithb 2015/10/23 00:08:52 owner_account_id_
Alexander Alekseev 2015/10/23 09:11:25 Done.
base::ObserverList<UserManager::Observer> observer_list_;
@@ -415,12 +416,12 @@ class USER_MANAGER_EXPORT UserManagerBase : public UserManager {
// ID of the user just added to the session that needs to be activated
// as soon as user's profile is loaded.
- std::string pending_user_switch_;
+ AccountId pending_user_switch_;
// ID of the user that was active in the previous session.
// Preference value is stored here before first user signs in
// because pref will be overidden once session restore starts.
- std::string last_session_active_user_;
+ AccountId last_session_active_user_;
bool last_session_active_user_initialized_;
// TaskRunner for UI thread.

Powered by Google App Engine
This is Rietveld 408576698