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_H_ | 5 #ifndef COMPONENTS_USER_MANAGER_USER_H_ |
6 #define COMPONENTS_USER_MANAGER_USER_H_ | 6 #define COMPONENTS_USER_MANAGER_USER_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
11 #include "base/basictypes.h" | 11 #include "base/basictypes.h" |
12 #include "base/strings/string16.h" | 12 #include "base/strings/string16.h" |
13 #include "components/signin/core/account_id/account_id.h" | 13 #include "components/user_manager/user_id.h" |
14 #include "components/user_manager/user_image/user_image.h" | 14 #include "components/user_manager/user_image/user_image.h" |
15 #include "components/user_manager/user_info.h" | 15 #include "components/user_manager/user_info.h" |
16 #include "components/user_manager/user_manager_export.h" | 16 #include "components/user_manager/user_manager_export.h" |
17 #include "components/user_manager/user_type.h" | 17 #include "components/user_manager/user_type.h" |
18 #include "third_party/skia/include/core/SkBitmap.h" | 18 #include "third_party/skia/include/core/SkBitmap.h" |
19 #include "ui/gfx/image/image_skia.h" | 19 #include "ui/gfx/image/image_skia.h" |
20 | 20 |
21 namespace chromeos { | 21 namespace chromeos { |
22 class ChromeUserManagerImpl; | 22 class ChromeUserManagerImpl; |
23 class FakeChromeUserManager; | 23 class FakeChromeUserManager; |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
76 WALLPAPER_TYPE_COUNT = 6 | 76 WALLPAPER_TYPE_COUNT = 6 |
77 }; | 77 }; |
78 | 78 |
79 // Returns true if user type has gaia account. | 79 // Returns true if user type has gaia account. |
80 static bool TypeHasGaiaAccount(UserType user_type); | 80 static bool TypeHasGaiaAccount(UserType user_type); |
81 | 81 |
82 // Returns the user type. | 82 // Returns the user type. |
83 virtual UserType GetType() const = 0; | 83 virtual UserType GetType() const = 0; |
84 | 84 |
85 // The email the user used to log in. | 85 // The email the user used to log in. |
86 // TODO(alemate): rename this to GetUserEmail() (see crbug.com/548923) | 86 const std::string& email() const { return email_; } |
87 const std::string& email() const; | |
88 | 87 |
89 // The displayed user name. | 88 // The displayed user name. |
90 base::string16 display_name() const { return display_name_; } | 89 base::string16 display_name() const { return display_name_; } |
91 | 90 |
92 // If the user has to use SAML to log in. | 91 // If the user has to use SAML to log in. |
93 bool using_saml() const { return using_saml_; } | 92 bool using_saml() const { return using_saml_; } |
94 | 93 |
95 // UserInfo | 94 // UserInfo |
96 std::string GetEmail() const override; | 95 std::string GetEmail() const override; |
97 base::string16 GetDisplayName() const override; | 96 base::string16 GetDisplayName() const override; |
98 base::string16 GetGivenName() const override; | 97 base::string16 GetGivenName() const override; |
99 const gfx::ImageSkia& GetImage() const override; | 98 const gfx::ImageSkia& GetImage() const override; |
100 AccountId GetAccountId() const override; | 99 UserID GetUserID() const override; |
101 | 100 |
102 // Allows managing child status of the user. Used for RegularUser. | 101 // Allows managing child status of the user. Used for RegularUser. |
103 virtual void SetIsChild(bool is_child); | 102 virtual void SetIsChild(bool is_child); |
104 | 103 |
105 // Returns true if user has gaia account. True for users of types | 104 // Returns true if user has gaia account. True for users of types |
106 // USER_TYPE_REGULAR and USER_TYPE_CHILD. | 105 // USER_TYPE_REGULAR and USER_TYPE_CHILD. |
107 virtual bool HasGaiaAccount() const; | 106 virtual bool HasGaiaAccount() const; |
108 | 107 |
109 // Returns true if user is supervised. | 108 // Returns true if user is supervised. |
110 virtual bool IsSupervised() const; | 109 virtual bool IsSupervised() const; |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
176 friend class chromeos::UserImageManagerImpl; | 175 friend class chromeos::UserImageManagerImpl; |
177 friend class chromeos::UserSessionManager; | 176 friend class chromeos::UserSessionManager; |
178 | 177 |
179 // For testing: | 178 // For testing: |
180 friend class FakeUserManager; | 179 friend class FakeUserManager; |
181 friend class chromeos::FakeChromeUserManager; | 180 friend class chromeos::FakeChromeUserManager; |
182 friend class chromeos::MockUserManager; | 181 friend class chromeos::MockUserManager; |
183 friend class chromeos::UserAddingScreenTest; | 182 friend class chromeos::UserAddingScreenTest; |
184 | 183 |
185 // Do not allow anyone else to create new User instances. | 184 // Do not allow anyone else to create new User instances. |
186 static User* CreateRegularUser(const AccountId& account_id); | 185 static User* CreateRegularUser(const UserID& email); |
187 static User* CreateGuestUser(); | 186 static User* CreateGuestUser(); |
188 static User* CreateKioskAppUser(const AccountId& kiosk_app_account_id); | 187 static User* CreateKioskAppUser(const UserID& kiosk_app_username); |
189 static User* CreateSupervisedUser(const AccountId& account_id); | 188 static User* CreateSupervisedUser(const UserID& username); |
190 static User* CreatePublicAccountUser(const AccountId& account_id); | 189 static User* CreatePublicAccountUser(const UserID& email); |
191 | 190 |
192 explicit User(const AccountId& account_id); | 191 explicit User(const std::string& email); |
193 ~User() override; | 192 ~User() override; |
194 | 193 |
195 const std::string* GetAccountLocale() const { return account_locale_.get(); } | 194 const std::string* GetAccountLocale() const { return account_locale_.get(); } |
196 | 195 |
197 // Setters are private so only UserManager can call them. | 196 // Setters are private so only UserManager can call them. |
198 void SetAccountLocale(const std::string& resolved_account_locale); | 197 void SetAccountLocale(const std::string& resolved_account_locale); |
199 | 198 |
200 void SetImage(const UserImage& user_image, int image_index); | 199 void SetImage(const UserImage& user_image, int image_index); |
201 | 200 |
202 void SetImageURL(const GURL& image_url); | 201 void SetImageURL(const GURL& image_url); |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
245 void set_profile_is_created() { profile_is_created_ = true; } | 244 void set_profile_is_created() { profile_is_created_ = true; } |
246 | 245 |
247 // True if user has google account (not a guest or managed user). | 246 // True if user has google account (not a guest or managed user). |
248 bool has_gaia_account() const; | 247 bool has_gaia_account() const; |
249 | 248 |
250 void set_affiliation(bool is_affiliated) { | 249 void set_affiliation(bool is_affiliated) { |
251 is_affiliated_ = is_affiliated; | 250 is_affiliated_ = is_affiliated; |
252 } | 251 } |
253 | 252 |
254 private: | 253 private: |
255 AccountId account_id_; | 254 std::string email_; |
256 base::string16 display_name_; | 255 base::string16 display_name_; |
257 base::string16 given_name_; | 256 base::string16 given_name_; |
258 // The displayed user email, defaults to |email_|. | 257 // The displayed user email, defaults to |email_|. |
259 std::string display_email_; | 258 std::string display_email_; |
260 bool using_saml_ = false; | 259 bool using_saml_; |
261 UserImage user_image_; | 260 UserImage user_image_; |
262 OAuthTokenStatus oauth_token_status_ = OAUTH_TOKEN_STATUS_UNKNOWN; | 261 OAuthTokenStatus oauth_token_status_; |
263 bool force_online_signin_ = false; | 262 bool force_online_signin_; |
264 | 263 |
265 // This is set to chromeos locale if account data has been downloaded. | 264 // This is set to chromeos locale if account data has been downloaded. |
266 // (Or failed to download, but at least one download attempt finished). | 265 // (Or failed to download, but at least one download attempt finished). |
267 // An empty string indicates error in data load, or in | 266 // An empty string indicates error in data load, or in |
268 // translation of Account locale to chromeos locale. | 267 // translation of Account locale to chromeos locale. |
269 scoped_ptr<std::string> account_locale_; | 268 scoped_ptr<std::string> account_locale_; |
270 | 269 |
271 // Used to identify homedir mount point. | 270 // Used to identify homedir mount point. |
272 std::string username_hash_; | 271 std::string username_hash_; |
273 | 272 |
274 // Either index of a default image for the user, |USER_IMAGE_EXTERNAL| or | 273 // Either index of a default image for the user, |USER_IMAGE_EXTERNAL| or |
275 // |USER_IMAGE_PROFILE|. | 274 // |USER_IMAGE_PROFILE|. |
276 int image_index_ = USER_IMAGE_INVALID; | 275 int image_index_; |
277 | 276 |
278 // True if current user image is a stub set by a |SetStubImage| call. | 277 // True if current user image is a stub set by a |SetStubImage| call. |
279 bool image_is_stub_ = false; | 278 bool image_is_stub_; |
280 | 279 |
281 // True if current user image is being loaded from file. | 280 // True if current user image is being loaded from file. |
282 bool image_is_loading_ = false; | 281 bool image_is_loading_; |
283 | 282 |
284 // True if user is able to lock screen. | 283 // True if user is able to lock screen. |
285 bool can_lock_ = false; | 284 bool can_lock_; |
286 | 285 |
287 // True if user is currently logged in in current session. | 286 // True if user is currently logged in in current session. |
288 bool is_logged_in_ = false; | 287 bool is_logged_in_; |
289 | 288 |
290 // True if user is currently logged in and active in current session. | 289 // True if user is currently logged in and active in current session. |
291 bool is_active_ = false; | 290 bool is_active_; |
292 | 291 |
293 // True if user Profile is created | 292 // True if user Profile is created |
294 bool profile_is_created_ = false; | 293 bool profile_is_created_; |
295 | 294 |
296 // True if the user is affiliated to the device. | 295 // True if the user is affiliated to the device. |
297 bool is_affiliated_ = false; | 296 bool is_affiliated_; |
298 | 297 |
299 DISALLOW_COPY_AND_ASSIGN(User); | 298 DISALLOW_COPY_AND_ASSIGN(User); |
300 }; | 299 }; |
301 | 300 |
302 // List of known users. | 301 // List of known users. |
303 using UserList = std::vector<User*>; | 302 typedef std::vector<User*> UserList; |
304 | 303 |
305 } // namespace user_manager | 304 } // namespace user_manager |
306 | 305 |
307 #endif // COMPONENTS_USER_MANAGER_USER_H_ | 306 #endif // COMPONENTS_USER_MANAGER_USER_H_ |
OLD | NEW |