| 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 #ifndef CHROME_BROWSER_CHROMEOS_LOGIN_SUPERVISED_SUPERVISED_USER_AUTHENTICATION_
H_ | 4 #ifndef CHROME_BROWSER_CHROMEOS_LOGIN_SUPERVISED_SUPERVISED_USER_AUTHENTICATION_
H_ |
| 5 #define CHROME_BROWSER_CHROMEOS_LOGIN_SUPERVISED_SUPERVISED_USER_AUTHENTICATION_
H_ | 5 #define CHROME_BROWSER_CHROMEOS_LOGIN_SUPERVISED_SUPERVISED_USER_AUTHENTICATION_
H_ |
| 6 | 6 |
| 7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
| 8 #include "base/compiler_specific.h" | 8 #include "base/compiler_specific.h" |
| 9 #include "base/memory/weak_ptr.h" | 9 #include "base/memory/weak_ptr.h" |
| 10 #include "base/strings/string16.h" | 10 #include "base/strings/string16.h" |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 54 | 54 |
| 55 // Returns current schema for whole ChromeOS. It defines if users with older | 55 // Returns current schema for whole ChromeOS. It defines if users with older |
| 56 // schema should be migrated somehow. | 56 // schema should be migrated somehow. |
| 57 Schema GetStableSchema(); | 57 Schema GetStableSchema(); |
| 58 | 58 |
| 59 // Transforms key according to schema specified in Local State. | 59 // Transforms key according to schema specified in Local State. |
| 60 UserContext TransformKey(const UserContext& context); | 60 UserContext TransformKey(const UserContext& context); |
| 61 | 61 |
| 62 // Fills |password_data| with |password|-specific data for |user_id|, | 62 // Fills |password_data| with |password|-specific data for |user_id|, |
| 63 // depending on target schema. Does not affect Local State. | 63 // depending on target schema. Does not affect Local State. |
| 64 bool FillDataForNewUser(const std::string& user_id, | 64 bool FillDataForNewUser(const user_manager::UserID& user_id, |
| 65 const std::string& password, | 65 const std::string& password, |
| 66 base::DictionaryValue* password_data, | 66 base::DictionaryValue* password_data, |
| 67 base::DictionaryValue* extra_data); | 67 base::DictionaryValue* extra_data); |
| 68 | 68 |
| 69 // Stores |password_data| for |user_id| in Local State. Only public parts | 69 // Stores |password_data| for |user_id| in Local State. Only public parts |
| 70 // of |password_data| will be stored. | 70 // of |password_data| will be stored. |
| 71 void StorePasswordData(const std::string& user_id, | 71 void StorePasswordData(const user_manager::UserID& user_id, |
| 72 const base::DictionaryValue& password_data); | 72 const base::DictionaryValue& password_data); |
| 73 | 73 |
| 74 bool NeedPasswordChange(const std::string& user_id, | 74 bool NeedPasswordChange(const user_manager::UserID& user_id, |
| 75 const base::DictionaryValue* password_data); | 75 const base::DictionaryValue* password_data); |
| 76 | 76 |
| 77 // Checks if given user should update password upon signin. | 77 // Checks if given user should update password upon signin. |
| 78 bool HasScheduledPasswordUpdate(const std::string& user_id); | 78 bool HasScheduledPasswordUpdate(const user_manager::UserID& user_id); |
| 79 void ClearScheduledPasswordUpdate(const std::string& user_id); | 79 void ClearScheduledPasswordUpdate(const user_manager::UserID& user_id); |
| 80 | 80 |
| 81 // Checks if password was migrated to new schema by supervised user. | 81 // Checks if password was migrated to new schema by supervised user. |
| 82 // In this case it does not have encryption key, and should be updated by | 82 // In this case it does not have encryption key, and should be updated by |
| 83 // manager even if password versions match. | 83 // manager even if password versions match. |
| 84 bool HasIncompleteKey(const std::string& user_id); | 84 bool HasIncompleteKey(const user_manager::UserID& user_id); |
| 85 void MarkKeyIncomplete(const std::string& user_id, bool incomplete); | 85 void MarkKeyIncomplete(const user_manager::UserID& user_id, bool incomplete); |
| 86 | 86 |
| 87 // Loads password data stored by ScheduleSupervisedPasswordChange. | 87 // Loads password data stored by ScheduleSupervisedPasswordChange. |
| 88 void LoadPasswordUpdateData(const std::string& user_id, | 88 void LoadPasswordUpdateData(const user_manager::UserID& user_id, |
| 89 const PasswordDataCallback& success_callback, | 89 const PasswordDataCallback& success_callback, |
| 90 const base::Closure& failure_callback); | 90 const base::Closure& failure_callback); |
| 91 | 91 |
| 92 // Creates a random string that can be used as a master key for managed | 92 // Creates a random string that can be used as a master key for managed |
| 93 // user's homedir. | 93 // user's homedir. |
| 94 std::string GenerateMasterKey(); | 94 std::string GenerateMasterKey(); |
| 95 | 95 |
| 96 // Called by supervised user to store password data for migration upon signin. | 96 // Called by supervised user to store password data for migration upon signin. |
| 97 void ScheduleSupervisedPasswordChange( | 97 void ScheduleSupervisedPasswordChange( |
| 98 const std::string& supervised_user_id, | 98 const user_manager::UserID& supervised_user_id, |
| 99 const base::DictionaryValue* password_data); | 99 const base::DictionaryValue* password_data); |
| 100 | 100 |
| 101 // Utility method that gets schema version for |user_id| from Local State. | 101 // Utility method that gets schema version for |user_id| from Local State. |
| 102 Schema GetPasswordSchema(const std::string& user_id); | 102 Schema GetPasswordSchema(const user_manager::UserID& user_id); |
| 103 | 103 |
| 104 static std::string BuildPasswordSignature( | 104 static std::string BuildPasswordSignature( |
| 105 const std::string& password, | 105 const std::string& password, |
| 106 int revision, | 106 int revision, |
| 107 const std::string& base64_signature_key); | 107 const std::string& base64_signature_key); |
| 108 | 108 |
| 109 private: | 109 private: |
| 110 SupervisedUserManager* owner_; | 110 SupervisedUserManager* owner_; |
| 111 | 111 |
| 112 // Target schema version. Affects migration process and new user creation. | 112 // Target schema version. Affects migration process and new user creation. |
| 113 Schema stable_schema_; | 113 Schema stable_schema_; |
| 114 | 114 |
| 115 | 115 |
| 116 DISALLOW_COPY_AND_ASSIGN(SupervisedUserAuthentication); | 116 DISALLOW_COPY_AND_ASSIGN(SupervisedUserAuthentication); |
| 117 }; | 117 }; |
| 118 | 118 |
| 119 } // namespace chromeos | 119 } // namespace chromeos |
| 120 | 120 |
| 121 #endif // CHROME_BROWSER_CHROMEOS_LOGIN_SUPERVISED_SUPERVISED_USER_AUTHENTICATI
ON_H_ | 121 #endif // CHROME_BROWSER_CHROMEOS_LOGIN_SUPERVISED_SUPERVISED_USER_AUTHENTICATI
ON_H_ |
| OLD | NEW |