| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 COMPONENTS_USER_MANAGER_USER_MANAGER_H_ | 5 #ifndef COMPONENTS_USER_MANAGER_USER_MANAGER_H_ |
| 6 #define COMPONENTS_USER_MANAGER_USER_MANAGER_H_ | 6 #define COMPONENTS_USER_MANAGER_USER_MANAGER_H_ |
| 7 | 7 |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "components/user_manager/user.h" | 10 #include "components/user_manager/user.h" |
| (...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 131 virtual const UserList& GetLRULoggedInUsers() const = 0; | 131 virtual const UserList& GetLRULoggedInUsers() const = 0; |
| 132 | 132 |
| 133 // Returns a list of users who can unlock the device. | 133 // Returns a list of users who can unlock the device. |
| 134 // This list is based on policy and whether user is able to do unlock. | 134 // This list is based on policy and whether user is able to do unlock. |
| 135 // Policy: | 135 // Policy: |
| 136 // * If user has primary-only policy then it is the only user in unlock users. | 136 // * If user has primary-only policy then it is the only user in unlock users. |
| 137 // * Otherwise all users with unrestricted policy are added to this list. | 137 // * Otherwise all users with unrestricted policy are added to this list. |
| 138 // All users that are unable to perform unlock are excluded from this list. | 138 // All users that are unable to perform unlock are excluded from this list. |
| 139 virtual UserList GetUnlockUsers() const = 0; | 139 virtual UserList GetUnlockUsers() const = 0; |
| 140 | 140 |
| 141 // Returns the email of the owner user. Returns an empty string if there is | 141 // Returns the id of the owner user. Returns an empty id if there is |
| 142 // no owner for the device. | 142 // no owner for the device. |
| 143 virtual const std::string& GetOwnerEmail() const = 0; | 143 virtual const UserID& GetOwnerID() const = 0; |
| 144 | 144 |
| 145 // Indicates that a user with the given |user_id| has just logged in. The | 145 // Indicates that a user with the given |user_id| has just logged in. The |
| 146 // persistent list is updated accordingly if the user is not ephemeral. | 146 // persistent list is updated accordingly if the user is not ephemeral. |
| 147 // |browser_restart| is true when reloading Chrome after crash to distinguish | 147 // |browser_restart| is true when reloading Chrome after crash to distinguish |
| 148 // from normal sign in flow. | 148 // from normal sign in flow. |
| 149 // |username_hash| is used to identify homedir mount point. | 149 // |username_hash| is used to identify homedir mount point. |
| 150 virtual void UserLoggedIn(const std::string& user_id, | 150 virtual void UserLoggedIn(const UserID& user_id, |
| 151 const std::string& username_hash, | 151 const std::string& username_hash, |
| 152 bool browser_restart) = 0; | 152 bool browser_restart) = 0; |
| 153 | 153 |
| 154 // Switches to active user identified by |user_id|. User has to be logged in. | 154 // Switches to active user identified by |user_id|. User has to be logged in. |
| 155 virtual void SwitchActiveUser(const std::string& user_id) = 0; | 155 virtual void SwitchActiveUser(const UserID& user_id) = 0; |
| 156 | 156 |
| 157 // Switches to the last active user (called after crash happens and session | 157 // Switches to the last active user (called after crash happens and session |
| 158 // restore has completed). | 158 // restore has completed). |
| 159 virtual void SwitchToLastActiveUser() = 0; | 159 virtual void SwitchToLastActiveUser() = 0; |
| 160 | 160 |
| 161 // Called when browser session is started i.e. after | 161 // Called when browser session is started i.e. after |
| 162 // browser_creator.LaunchBrowser(...) was called after user sign in. | 162 // browser_creator.LaunchBrowser(...) was called after user sign in. |
| 163 // When user is at the image screen IsUserLoggedIn() will return true | 163 // When user is at the image screen IsUserLoggedIn() will return true |
| 164 // but IsSessionStarted() will return false. During the kiosk splash screen, | 164 // but IsSessionStarted() will return false. During the kiosk splash screen, |
| 165 // we perform additional initialization after the user is logged in but | 165 // we perform additional initialization after the user is logged in but |
| 166 // before the session has been started. | 166 // before the session has been started. |
| 167 // Fires NOTIFICATION_SESSION_STARTED. | 167 // Fires NOTIFICATION_SESSION_STARTED. |
| 168 virtual void SessionStarted() = 0; | 168 virtual void SessionStarted() = 0; |
| 169 | 169 |
| 170 // Removes the user from the device. Note, it will verify that the given user | 170 // Removes the user from the device. Note, it will verify that the given user |
| 171 // isn't the owner, so calling this method for the owner will take no effect. | 171 // isn't the owner, so calling this method for the owner will take no effect. |
| 172 // Note, |delegate| can be NULL. | 172 // Note, |delegate| can be NULL. |
| 173 virtual void RemoveUser(const std::string& user_id, | 173 virtual void RemoveUser(const UserID& user_id, |
| 174 RemoveUserDelegate* delegate) = 0; | 174 RemoveUserDelegate* delegate) = 0; |
| 175 | 175 |
| 176 // Removes the user from the persistent list only. Also removes the user's | 176 // Removes the user from the persistent list only. Also removes the user's |
| 177 // picture. | 177 // picture. |
| 178 virtual void RemoveUserFromList(const std::string& user_id) = 0; | 178 virtual void RemoveUserFromList(const UserID& user_id) = 0; |
| 179 | 179 |
| 180 // Returns true if a user with the given user id is found in the persistent | 180 // Returns true if a user with the given user id is found in the persistent |
| 181 // list or currently logged in as ephemeral. | 181 // list or currently logged in as ephemeral. |
| 182 virtual bool IsKnownUser(const std::string& user_id) const = 0; | 182 virtual bool IsKnownUser(const UserID& user_id) const = 0; |
| 183 | 183 |
| 184 // Returns the user with the given user id if found in the persistent | 184 // Returns the user with the given user id if found in the persistent |
| 185 // list or currently logged in as ephemeral. Returns |NULL| otherwise. | 185 // list or currently logged in as ephemeral. Returns |NULL| otherwise. |
| 186 virtual const User* FindUser(const std::string& user_id) const = 0; | 186 virtual const User* FindUser(const UserID& user_id) const = 0; |
| 187 | 187 |
| 188 // Returns the user with the given user id if found in the persistent | 188 // Returns the user with the given user id if found in the persistent |
| 189 // list or currently logged in as ephemeral. Returns |NULL| otherwise. | 189 // list or currently logged in as ephemeral. Returns |NULL| otherwise. |
| 190 // Same as FindUser but returns non-const pointer to User object. | 190 // Same as FindUser but returns non-const pointer to User object. |
| 191 virtual User* FindUserAndModify(const std::string& user_id) = 0; | 191 virtual User* FindUserAndModify(const UserID& user_id) = 0; |
| 192 | 192 |
| 193 // Returns the logged-in user. | 193 // Returns the logged-in user. |
| 194 // TODO(nkostylev): Deprecate this call, move clients to GetActiveUser(). | 194 // TODO(nkostylev): Deprecate this call, move clients to GetActiveUser(). |
| 195 // http://crbug.com/230852 | 195 // http://crbug.com/230852 |
| 196 virtual const User* GetLoggedInUser() const = 0; | 196 virtual const User* GetLoggedInUser() const = 0; |
| 197 virtual User* GetLoggedInUser() = 0; | 197 virtual User* GetLoggedInUser() = 0; |
| 198 | 198 |
| 199 // Returns the logged-in user that is currently active within this session. | 199 // Returns the logged-in user that is currently active within this session. |
| 200 // There could be multiple users logged in at the the same but for now | 200 // There could be multiple users logged in at the the same but for now |
| 201 // we support only one of them being active. | 201 // we support only one of them being active. |
| 202 virtual const User* GetActiveUser() const = 0; | 202 virtual const User* GetActiveUser() const = 0; |
| 203 virtual User* GetActiveUser() = 0; | 203 virtual User* GetActiveUser() = 0; |
| 204 | 204 |
| 205 // Returns the primary user of the current session. It is recorded for the | 205 // Returns the primary user of the current session. It is recorded for the |
| 206 // first signed-in user and does not change thereafter. | 206 // first signed-in user and does not change thereafter. |
| 207 virtual const User* GetPrimaryUser() const = 0; | 207 virtual const User* GetPrimaryUser() const = 0; |
| 208 | 208 |
| 209 // Saves user's oauth token status in local state preferences. | 209 // Saves user's oauth token status in local state preferences. |
| 210 virtual void SaveUserOAuthStatus( | 210 virtual void SaveUserOAuthStatus( |
| 211 const std::string& user_id, | 211 const UserID& user_id, |
| 212 User::OAuthTokenStatus oauth_token_status) = 0; | 212 User::OAuthTokenStatus oauth_token_status) = 0; |
| 213 | 213 |
| 214 // Saves a flag indicating whether online authentication against GAIA should | 214 // Saves a flag indicating whether online authentication against GAIA should |
| 215 // be enforced during the user's next sign-in. | 215 // be enforced during the user's next sign-in. |
| 216 virtual void SaveForceOnlineSignin(const std::string& user_id, | 216 virtual void SaveForceOnlineSignin(const UserID& user_id, |
| 217 bool force_online_signin) = 0; | 217 bool force_online_signin) = 0; |
| 218 | 218 |
| 219 // Saves user's displayed name in local state preferences. | 219 // Saves user's displayed name in local state preferences. |
| 220 // Ignored If there is no such user. | 220 // Ignored If there is no such user. |
| 221 virtual void SaveUserDisplayName(const std::string& user_id, | 221 virtual void SaveUserDisplayName(const UserID& user_id, |
| 222 const base::string16& display_name) = 0; | 222 const base::string16& display_name) = 0; |
| 223 | 223 |
| 224 // Updates data upon User Account download. | 224 // Updates data upon User Account download. |
| 225 virtual void UpdateUserAccountData(const std::string& user_id, | 225 virtual void UpdateUserAccountData(const UserID& user_id, |
| 226 const UserAccountData& account_data) = 0; | 226 const UserAccountData& account_data) = 0; |
| 227 | 227 |
| 228 // Returns the display name for user |user_id| if it is known (was | 228 // Returns the display name for user |user_id| if it is known (was |
| 229 // previously set by a |SaveUserDisplayName| call). | 229 // previously set by a |SaveUserDisplayName| call). |
| 230 // Otherwise, returns an empty string. | 230 // Otherwise, returns an empty string. |
| 231 virtual base::string16 GetUserDisplayName( | 231 virtual base::string16 GetUserDisplayName( |
| 232 const std::string& user_id) const = 0; | 232 const UserID& user_id) const = 0; |
| 233 | 233 |
| 234 // Saves user's displayed (non-canonical) email in local state preferences. | 234 // Saves user's displayed (non-canonical) email in local state preferences. |
| 235 // Ignored If there is no such user. | 235 // Ignored If there is no such user. |
| 236 virtual void SaveUserDisplayEmail(const std::string& user_id, | 236 virtual void SaveUserDisplayEmail(const UserID& user_id, |
| 237 const std::string& display_email) = 0; | 237 const std::string& display_email) = 0; |
| 238 | 238 |
| 239 // Returns the display email for user |user_id| if it is known (was | 239 // Returns the display email for user |user_id| if it is known (was |
| 240 // previously set by a |SaveUserDisplayEmail| call). | 240 // previously set by a |SaveUserDisplayEmail| call). |
| 241 // Otherwise, returns |user_id| itself. | 241 // Otherwise, returns |user_id| itself. |
| 242 virtual std::string GetUserDisplayEmail(const std::string& user_id) const = 0; | 242 virtual std::string GetUserDisplayEmail(const UserID& user_id) const = 0; |
| 243 | 243 |
| 244 // Saves user's type for user |user_id| into local state preferences. | 244 // Saves user's type for user |user_id| into local state preferences. |
| 245 // Ignored If there is no such user. | 245 // Ignored If there is no such user. |
| 246 virtual void SaveUserType(const std::string& user_id, | 246 virtual void SaveUserType(const UserID& user_id, |
| 247 const UserType& user_type) = 0; | 247 const UserType& user_type) = 0; |
| 248 | 248 |
| 249 // Returns true if current user is an owner. | 249 // Returns true if current user is an owner. |
| 250 virtual bool IsCurrentUserOwner() const = 0; | 250 virtual bool IsCurrentUserOwner() const = 0; |
| 251 | 251 |
| 252 // Returns true if current user is not existing one (hasn't signed in before). | 252 // Returns true if current user is not existing one (hasn't signed in before). |
| 253 virtual bool IsCurrentUserNew() const = 0; | 253 virtual bool IsCurrentUserNew() const = 0; |
| 254 | 254 |
| 255 // Returns true if data stored or cached for the current user outside that | 255 // Returns true if data stored or cached for the current user outside that |
| 256 // user's cryptohome (wallpaper, avatar, OAuth token status, display name, | 256 // user's cryptohome (wallpaper, avatar, OAuth token status, display name, |
| (...skipping 30 matching lines...) Expand all Loading... |
| 287 | 287 |
| 288 // Returns true if we're logged in and browser has been started i.e. | 288 // Returns true if we're logged in and browser has been started i.e. |
| 289 // browser_creator.LaunchBrowser(...) was called after sign in | 289 // browser_creator.LaunchBrowser(...) was called after sign in |
| 290 // or restart after crash. | 290 // or restart after crash. |
| 291 virtual bool IsSessionStarted() const = 0; | 291 virtual bool IsSessionStarted() const = 0; |
| 292 | 292 |
| 293 // Returns true if data stored or cached for the user with the given user id | 293 // Returns true if data stored or cached for the user with the given user id |
| 294 // address outside that user's cryptohome (wallpaper, avatar, OAuth token | 294 // address outside that user's cryptohome (wallpaper, avatar, OAuth token |
| 295 // status, display name, display email) is to be treated as ephemeral. | 295 // status, display name, display email) is to be treated as ephemeral. |
| 296 virtual bool IsUserNonCryptohomeDataEphemeral( | 296 virtual bool IsUserNonCryptohomeDataEphemeral( |
| 297 const std::string& user_id) const = 0; | 297 const UserID& user_id) const = 0; |
| 298 | 298 |
| 299 virtual void AddObserver(Observer* obs) = 0; | 299 virtual void AddObserver(Observer* obs) = 0; |
| 300 virtual void RemoveObserver(Observer* obs) = 0; | 300 virtual void RemoveObserver(Observer* obs) = 0; |
| 301 | 301 |
| 302 virtual void AddSessionStateObserver(UserSessionStateObserver* obs) = 0; | 302 virtual void AddSessionStateObserver(UserSessionStateObserver* obs) = 0; |
| 303 virtual void RemoveSessionStateObserver(UserSessionStateObserver* obs) = 0; | 303 virtual void RemoveSessionStateObserver(UserSessionStateObserver* obs) = 0; |
| 304 | 304 |
| 305 virtual void NotifyLocalStateChanged() = 0; | 305 virtual void NotifyLocalStateChanged() = 0; |
| 306 | 306 |
| 307 // Changes the child status and notifies observers. | 307 // Changes the child status and notifies observers. |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 410 static UserManager* GetForTesting(); | 410 static UserManager* GetForTesting(); |
| 411 | 411 |
| 412 // Sets UserManager instance to the given |user_manager|. | 412 // Sets UserManager instance to the given |user_manager|. |
| 413 // Returns the previous value of the instance. | 413 // Returns the previous value of the instance. |
| 414 static UserManager* SetForTesting(UserManager* user_manager); | 414 static UserManager* SetForTesting(UserManager* user_manager); |
| 415 }; | 415 }; |
| 416 | 416 |
| 417 } // namespace user_manager | 417 } // namespace user_manager |
| 418 | 418 |
| 419 #endif // COMPONENTS_USER_MANAGER_USER_MANAGER_H_ | 419 #endif // COMPONENTS_USER_MANAGER_USER_MANAGER_H_ |
| OLD | NEW |