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" |
11 #include "components/user_manager/user_manager_export.h" | 11 #include "components/user_manager/user_manager_export.h" |
12 #include "components/user_manager/user_type.h" | 12 #include "components/user_manager/user_type.h" |
13 | 13 |
14 class AccountId; | 14 class AccountId; |
| 15 class PrefService; |
15 | 16 |
16 namespace base { | 17 namespace base { |
17 class DictionaryValue; | 18 class DictionaryValue; |
18 } | 19 } |
19 | 20 |
20 namespace chromeos { | 21 namespace chromeos { |
21 class ScopedUserManagerEnabler; | 22 class ScopedUserManagerEnabler; |
22 } | 23 } |
23 | 24 |
24 namespace user_manager { | 25 namespace user_manager { |
(...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
308 | 309 |
309 virtual void NotifyLocalStateChanged() = 0; | 310 virtual void NotifyLocalStateChanged() = 0; |
310 | 311 |
311 // Changes the child status and notifies observers. | 312 // Changes the child status and notifies observers. |
312 virtual void ChangeUserChildStatus(User* user, bool is_child) = 0; | 313 virtual void ChangeUserChildStatus(User* user, bool is_child) = 0; |
313 | 314 |
314 | 315 |
315 // Returns true if supervised users allowed. | 316 // Returns true if supervised users allowed. |
316 virtual bool AreSupervisedUsersAllowed() const = 0; | 317 virtual bool AreSupervisedUsersAllowed() const = 0; |
317 | 318 |
318 // Methods for storage/retrieval of per-user properties in Local State. | 319 // Returns "Local State" PrefService instance. |
319 | 320 virtual PrefService* GetLocalState() const = 0; |
320 // Performs a lookup of properties associated with |account_id|. If found, | |
321 // returns |true| and fills |out_value|. |out_value| can be NULL, if | |
322 // only existence check is required. | |
323 virtual bool FindKnownUserPrefs(const AccountId& account_id, | |
324 const base::DictionaryValue** out_value) = 0; | |
325 | |
326 // Updates (or creates) properties associated with |account_id| based | |
327 // on |values|. |clear| defines if existing properties are cleared (|true|) | |
328 // or if it is just a incremental update (|false|). | |
329 virtual void UpdateKnownUserPrefs(const AccountId& account_id, | |
330 const base::DictionaryValue& values, | |
331 bool clear) = 0; | |
332 | |
333 // Returns true if |account_id| preference by |path| does exist, | |
334 // fills in |out_value|. Otherwise returns false. | |
335 virtual bool GetKnownUserStringPref(const AccountId& account_id, | |
336 const std::string& path, | |
337 std::string* out_value) = 0; | |
338 | |
339 // Updates user's identified by |account_id| string preference |path|. | |
340 virtual void SetKnownUserStringPref(const AccountId& account_id, | |
341 const std::string& path, | |
342 const std::string& in_value) = 0; | |
343 | |
344 // Returns true if |account_id| preference by |path| does exist, | |
345 // fills in |out_value|. Otherwise returns false. | |
346 virtual bool GetKnownUserBooleanPref(const AccountId& account_id, | |
347 const std::string& path, | |
348 bool* out_value) = 0; | |
349 | |
350 // Updates user's identified by |account_id| boolean preference |path|. | |
351 virtual void SetKnownUserBooleanPref(const AccountId& account_id, | |
352 const std::string& path, | |
353 const bool in_value) = 0; | |
354 | |
355 // Returns true if |account_id| preference by |path| does exist, | |
356 // fills in |out_value|. Otherwise returns false. | |
357 virtual bool GetKnownUserIntegerPref(const AccountId& account_id, | |
358 const std::string& path, | |
359 int* out_value) = 0; | |
360 | |
361 // Updates user's identified by |account_id| integer preference |path|. | |
362 virtual void SetKnownUserIntegerPref(const AccountId& account_id, | |
363 const std::string& path, | |
364 const int in_value) = 0; | |
365 | |
366 // This call forms full account id of a known user by email and (optionally) | |
367 // gaia_id. | |
368 // This is a temporary call while migrating to AccountId. | |
369 virtual AccountId GetKnownUserAccountIdImpl(const std::string& user_email, | |
370 const std::string& gaia_id) = 0; | |
371 | |
372 // The same as above, but doesn't crash in unit_tests when Usermanager | |
373 // doesn't exist. | |
374 static AccountId GetKnownUserAccountId(const std::string& user_email, | |
375 const std::string& gaia_id); | |
376 | |
377 // Updates |gaia_id| for user with |account_id|. | |
378 // TODO(alemate): Update this once AccountId contains GAIA ID | |
379 // (crbug.com/548926). | |
380 virtual void UpdateGaiaID(const AccountId& account_id, | |
381 const std::string& gaia_id) = 0; | |
382 | |
383 // Find GAIA ID for user with |account_id|, fill in |out_value| and return | |
384 // true | |
385 // if GAIA ID was found or false otherwise. | |
386 // TODO(antrim): Update this once AccountId contains GAIA ID | |
387 // (crbug.com/548926). | |
388 virtual bool FindGaiaID(const AccountId& account_id, | |
389 std::string* out_value) = 0; | |
390 | |
391 // Saves whether the user authenticates using SAML. | |
392 virtual void UpdateUsingSAML(const AccountId& account_id, | |
393 const bool using_saml) = 0; | |
394 | |
395 // Returns if SAML needs to be used for authentication of the user with | |
396 // |account_id|, if it is known (was set by a |UpdateUsingSaml| call). | |
397 // Otherwise | |
398 // returns false. | |
399 virtual bool FindUsingSAML(const AccountId& account_id) = 0; | |
400 | |
401 // Setter and getter for DeviceId known user string preference. | |
402 virtual void SetKnownUserDeviceId(const AccountId& account_id, | |
403 const std::string& device_id) = 0; | |
404 virtual std::string GetKnownUserDeviceId(const AccountId& account_id) = 0; | |
405 | |
406 // Setter and getter for GAPSCookie known user string preference. | |
407 virtual void SetKnownUserGAPSCookie(const AccountId& account_id, | |
408 const std::string& gaps_cookie) = 0; | |
409 | |
410 virtual std::string GetKnownUserGAPSCookie(const AccountId& account_id) = 0; | |
411 | |
412 // Saves why the user has to go through re-auth flow. | |
413 virtual void UpdateReauthReason(const AccountId& account_id, | |
414 const int reauth_reason) = 0; | |
415 | |
416 // Returns the reason why the user with |account_id| has to go through the | |
417 // re-auth flow. Returns true if such a reason was recorded or false | |
418 // otherwise. | |
419 virtual bool FindReauthReason(const AccountId& account_id, | |
420 int* out_value) = 0; | |
421 | 321 |
422 protected: | 322 protected: |
423 // Sets UserManager instance. | 323 // Sets UserManager instance. |
424 static void SetInstance(UserManager* user_manager); | 324 static void SetInstance(UserManager* user_manager); |
425 | 325 |
426 // Pointer to the existing UserManager instance (if any). | 326 // Pointer to the existing UserManager instance (if any). |
427 // Usually is set by calling Initialize(), reset by calling Destroy(). | 327 // Usually is set by calling Initialize(), reset by calling Destroy(). |
428 // Not owned since specific implementation of UserManager should decide on its | 328 // Not owned since specific implementation of UserManager should decide on its |
429 // own appropriate owner. For src/chrome implementation such place is | 329 // own appropriate owner. For src/chrome implementation such place is |
430 // g_browser_process->platform_part(). | 330 // g_browser_process->platform_part(). |
431 static UserManager* instance; | 331 static UserManager* instance; |
432 | 332 |
433 private: | 333 private: |
434 friend class chromeos::ScopedUserManagerEnabler; | 334 friend class chromeos::ScopedUserManagerEnabler; |
435 | 335 |
436 // Same as Get() but doesn't won't crash is current instance is NULL. | 336 // Same as Get() but doesn't won't crash is current instance is NULL. |
437 static UserManager* GetForTesting(); | 337 static UserManager* GetForTesting(); |
438 | 338 |
439 // Sets UserManager instance to the given |user_manager|. | 339 // Sets UserManager instance to the given |user_manager|. |
440 // Returns the previous value of the instance. | 340 // Returns the previous value of the instance. |
441 static UserManager* SetForTesting(UserManager* user_manager); | 341 static UserManager* SetForTesting(UserManager* user_manager); |
442 }; | 342 }; |
443 | 343 |
444 } // namespace user_manager | 344 } // namespace user_manager |
445 | 345 |
446 #endif // COMPONENTS_USER_MANAGER_USER_MANAGER_H_ | 346 #endif // COMPONENTS_USER_MANAGER_USER_MANAGER_H_ |
OLD | NEW |