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 #include "chrome/browser/chromeos/login/supervised/supervised_user_login_flow.h" | 5 #include "chrome/browser/chromeos/login/supervised/supervised_user_login_flow.h" |
6 | 6 |
7 #include "base/base64.h" | 7 #include "base/base64.h" |
8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "base/metrics/histogram.h" | 10 #include "base/metrics/histogram.h" |
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
130 LOG(ERROR) << "Incomplete data for password change"; | 130 LOG(ERROR) << "Incomplete data for password change"; |
131 | 131 |
132 UMA_HISTOGRAM_ENUMERATION( | 132 UMA_HISTOGRAM_ENUMERATION( |
133 "ManagedUsers.ChromeOS.PasswordChange", | 133 "ManagedUsers.ChromeOS.PasswordChange", |
134 SupervisedUserAuthentication::PASSWORD_CHANGE_FAILED_INCOMPLETE_DATA, | 134 SupervisedUserAuthentication::PASSWORD_CHANGE_FAILED_INCOMPLETE_DATA, |
135 SupervisedUserAuthentication::PASSWORD_CHANGE_RESULT_MAX_VALUE); | 135 SupervisedUserAuthentication::PASSWORD_CHANGE_RESULT_MAX_VALUE); |
136 Finish(); | 136 Finish(); |
137 return; | 137 return; |
138 } | 138 } |
139 base::Base64Decode(base64_signature, &signature); | 139 base::Base64Decode(base64_signature, &signature); |
140 scoped_ptr<base::DictionaryValue> data_copy(password_data->DeepCopy()); | 140 std::unique_ptr<base::DictionaryValue> data_copy(password_data->DeepCopy()); |
141 cryptohome::KeyDefinition key(password, | 141 cryptohome::KeyDefinition key(password, |
142 kCryptohomeSupervisedUserKeyLabel, | 142 kCryptohomeSupervisedUserKeyLabel, |
143 kCryptohomeSupervisedUserKeyPrivileges); | 143 kCryptohomeSupervisedUserKeyPrivileges); |
144 | 144 |
145 authenticator_ = ExtendedAuthenticator::Create(this); | 145 authenticator_ = ExtendedAuthenticator::Create(this); |
146 SupervisedUserAuthentication::Schema current_schema = | 146 SupervisedUserAuthentication::Schema current_schema = |
147 auth->GetPasswordSchema(account_id().GetUserEmail()); | 147 auth->GetPasswordSchema(account_id().GetUserEmail()); |
148 | 148 |
149 key.revision = revision; | 149 key.revision = revision; |
150 | 150 |
(...skipping 26 matching lines...) Expand all Loading... |
177 signature, | 177 signature, |
178 base::Bind(&SupervisedUserLoginFlow::OnPasswordUpdated, | 178 base::Bind(&SupervisedUserLoginFlow::OnPasswordUpdated, |
179 weak_factory_.GetWeakPtr(), | 179 weak_factory_.GetWeakPtr(), |
180 Passed(&data_copy))); | 180 Passed(&data_copy))); |
181 } else { | 181 } else { |
182 NOTREACHED() << "Unsupported password schema"; | 182 NOTREACHED() << "Unsupported password schema"; |
183 } | 183 } |
184 } | 184 } |
185 | 185 |
186 void SupervisedUserLoginFlow::OnNewKeyAdded( | 186 void SupervisedUserLoginFlow::OnNewKeyAdded( |
187 scoped_ptr<base::DictionaryValue> password_data) { | 187 std::unique_ptr<base::DictionaryValue> password_data) { |
188 VLOG(1) << "New key added"; | 188 VLOG(1) << "New key added"; |
189 SupervisedUserAuthentication* auth = | 189 SupervisedUserAuthentication* auth = |
190 ChromeUserManager::Get()->GetSupervisedUserManager()->GetAuthentication(); | 190 ChromeUserManager::Get()->GetSupervisedUserManager()->GetAuthentication(); |
191 auth->StorePasswordData(account_id().GetUserEmail(), *password_data.get()); | 191 auth->StorePasswordData(account_id().GetUserEmail(), *password_data.get()); |
192 auth->MarkKeyIncomplete(account_id().GetUserEmail(), true /* incomplete */); | 192 auth->MarkKeyIncomplete(account_id().GetUserEmail(), true /* incomplete */); |
193 authenticator_->RemoveKey( | 193 authenticator_->RemoveKey( |
194 context_, | 194 context_, |
195 kLegacyCryptohomeSupervisedUserKeyLabel, | 195 kLegacyCryptohomeSupervisedUserKeyLabel, |
196 base::Bind(&SupervisedUserLoginFlow::OnOldKeyRemoved, | 196 base::Bind(&SupervisedUserLoginFlow::OnOldKeyRemoved, |
197 weak_factory_.GetWeakPtr())); | 197 weak_factory_.GetWeakPtr())); |
(...skipping 23 matching lines...) Expand all Loading... |
221 | 221 |
222 UMA_HISTOGRAM_ENUMERATION( | 222 UMA_HISTOGRAM_ENUMERATION( |
223 "ManagedUsers.ChromeOS.PasswordChange", | 223 "ManagedUsers.ChromeOS.PasswordChange", |
224 SupervisedUserAuthentication:: | 224 SupervisedUserAuthentication:: |
225 PASSWORD_CHANGE_FAILED_AUTHENTICATION_FAILURE, | 225 PASSWORD_CHANGE_FAILED_AUTHENTICATION_FAILURE, |
226 SupervisedUserAuthentication::PASSWORD_CHANGE_RESULT_MAX_VALUE); | 226 SupervisedUserAuthentication::PASSWORD_CHANGE_RESULT_MAX_VALUE); |
227 Finish(); | 227 Finish(); |
228 } | 228 } |
229 | 229 |
230 void SupervisedUserLoginFlow::OnPasswordUpdated( | 230 void SupervisedUserLoginFlow::OnPasswordUpdated( |
231 scoped_ptr<base::DictionaryValue> password_data) { | 231 std::unique_ptr<base::DictionaryValue> password_data) { |
232 VLOG(1) << "Updated password for supervised user"; | 232 VLOG(1) << "Updated password for supervised user"; |
233 | 233 |
234 SupervisedUserAuthentication* auth = | 234 SupervisedUserAuthentication* auth = |
235 ChromeUserManager::Get()->GetSupervisedUserManager()->GetAuthentication(); | 235 ChromeUserManager::Get()->GetSupervisedUserManager()->GetAuthentication(); |
236 | 236 |
237 // Incomplete state is not there in password_data, carry it from old state. | 237 // Incomplete state is not there in password_data, carry it from old state. |
238 const bool was_incomplete = | 238 const bool was_incomplete = |
239 auth->HasIncompleteKey(account_id().GetUserEmail()); | 239 auth->HasIncompleteKey(account_id().GetUserEmail()); |
240 auth->StorePasswordData(account_id().GetUserEmail(), *password_data.get()); | 240 auth->StorePasswordData(account_id().GetUserEmail(), *password_data.get()); |
241 if (was_incomplete) | 241 if (was_incomplete) |
(...skipping 15 matching lines...) Expand all Loading... |
257 void SupervisedUserLoginFlow::LaunchExtraSteps( | 257 void SupervisedUserLoginFlow::LaunchExtraSteps( |
258 Profile* profile) { | 258 Profile* profile) { |
259 profile_ = profile; | 259 profile_ = profile; |
260 ChromeUserManager::Get()->GetSupervisedUserManager()->LoadSupervisedUserToken( | 260 ChromeUserManager::Get()->GetSupervisedUserManager()->LoadSupervisedUserToken( |
261 profile, | 261 profile, |
262 base::Bind(&SupervisedUserLoginFlow::OnSyncSetupDataLoaded, | 262 base::Bind(&SupervisedUserLoginFlow::OnSyncSetupDataLoaded, |
263 weak_factory_.GetWeakPtr())); | 263 weak_factory_.GetWeakPtr())); |
264 } | 264 } |
265 | 265 |
266 } // namespace chromeos | 266 } // namespace chromeos |
OLD | NEW |