Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(124)

Side by Side Diff: chrome/browser/ui/webui/chromeos/login/enrollment_screen_handler.cc

Issue 2433363004: Chromad: added AD Join ui, authpolicy_client (Closed)
Patch Set: Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/ui/webui/chromeos/login/enrollment_screen_handler.h" 5 #include "chrome/browser/ui/webui/chromeos/login/enrollment_screen_handler.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "ash/common/system/chromeos/devicetype_utils.h" 9 #include "ash/common/system/chromeos/devicetype_utils.h"
10 #include "base/bind.h" 10 #include "base/bind.h"
11 #include "base/bind_helpers.h" 11 #include "base/bind_helpers.h"
12 #include "base/command_line.h"
12 #include "base/logging.h" 13 #include "base/logging.h"
13 #include "base/macros.h" 14 #include "base/macros.h"
14 #include "base/strings/stringprintf.h" 15 #include "base/strings/stringprintf.h"
15 #include "base/values.h" 16 #include "base/values.h"
16 #include "chrome/browser/browser_process.h" 17 #include "chrome/browser/browser_process.h"
17 #include "chrome/browser/browser_process_platform_part.h" 18 #include "chrome/browser/browser_process_platform_part.h"
18 #include "chrome/browser/chromeos/login/error_screens_histogram_helper.h" 19 #include "chrome/browser/chromeos/login/error_screens_histogram_helper.h"
19 #include "chrome/browser/chromeos/login/help_app_launcher.h" 20 #include "chrome/browser/chromeos/login/help_app_launcher.h"
20 #include "chrome/browser/chromeos/login/screens/network_error.h" 21 #include "chrome/browser/chromeos/login/screens/network_error.h"
21 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" 22 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h"
22 #include "chrome/browser/chromeos/policy/enrollment_status_chromeos.h" 23 #include "chrome/browser/chromeos/policy/enrollment_status_chromeos.h"
23 #include "chrome/browser/chromeos/policy/policy_oauth2_token_fetcher.h" 24 #include "chrome/browser/chromeos/policy/policy_oauth2_token_fetcher.h"
24 #include "chrome/browser/ui/webui/chromeos/login/oobe_screen.h" 25 #include "chrome/browser/ui/webui/chromeos/login/oobe_screen.h"
25 #include "chrome/grit/generated_resources.h" 26 #include "chrome/grit/generated_resources.h"
27 #include "chromeos/dbus/authpolicy_client.h"
28 #include "chromeos/dbus/dbus_thread_manager.h"
26 #include "chromeos/network/network_state.h" 29 #include "chromeos/network/network_state.h"
27 #include "chromeos/network/network_state_handler.h" 30 #include "chromeos/network/network_state_handler.h"
28 #include "components/login/localized_values_builder.h" 31 #include "components/login/localized_values_builder.h"
29 #include "components/policy/core/browser/cloud/message_util.h" 32 #include "components/policy/core/browser/cloud/message_util.h"
33 #include "content/public/browser/browser_thread.h"
30 #include "google_apis/gaia/gaia_auth_util.h" 34 #include "google_apis/gaia/gaia_auth_util.h"
31 #include "google_apis/gaia/gaia_urls.h" 35 #include "google_apis/gaia/gaia_urls.h"
32 #include "google_apis/gaia/google_service_auth_error.h" 36 #include "google_apis/gaia/google_service_auth_error.h"
33 #include "ui/base/l10n/l10n_util.h" 37 #include "ui/base/l10n/l10n_util.h"
34 38
35 namespace chromeos { 39 namespace chromeos {
36 namespace { 40 namespace {
37 41
38 const char kJsScreenPath[] = "login.OAuthEnrollmentScreen"; 42 const char kJsScreenPath[] = "login.OAuthEnrollmentScreen";
39 43
40 // Enrollment step names. 44 // Enrollment step names.
41 const char kEnrollmentStepSignin[] = "signin"; 45 const char kEnrollmentStepSignin[] = "signin";
46 const char kEnrollmentStepADJoin[] = "ad-join";
42 const char kEnrollmentStepSuccess[] = "success"; 47 const char kEnrollmentStepSuccess[] = "success";
43 const char kEnrollmentStepWorking[] = "working"; 48 const char kEnrollmentStepWorking[] = "working";
44 49
45 // Enrollment mode constants used in the UI. This needs to be kept in sync with 50 // Enrollment mode constants used in the UI. This needs to be kept in sync with
46 // oobe_screen_oauth_enrollment.js. 51 // oobe_screen_oauth_enrollment.js.
47 const char kEnrollmentModeUIForced[] = "forced"; 52 const char kEnrollmentModeUIForced[] = "forced";
48 const char kEnrollmentModeUIManual[] = "manual"; 53 const char kEnrollmentModeUIManual[] = "manual";
49 const char kEnrollmentModeUIRecovery[] = "recovery"; 54 const char kEnrollmentModeUIRecovery[] = "recovery";
50 55
51 // Converts |mode| to a mode identifier for the UI. 56 // Converts |mode| to a mode identifier for the UI.
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 136
132 // EnrollmentScreenHandler, WebUIMessageHandler implementation -- 137 // EnrollmentScreenHandler, WebUIMessageHandler implementation --
133 138
134 void EnrollmentScreenHandler::RegisterMessages() { 139 void EnrollmentScreenHandler::RegisterMessages() {
135 AddCallback("toggleFakeEnrollment", 140 AddCallback("toggleFakeEnrollment",
136 &EnrollmentScreenHandler::HandleToggleFakeEnrollment); 141 &EnrollmentScreenHandler::HandleToggleFakeEnrollment);
137 AddCallback("oauthEnrollClose", 142 AddCallback("oauthEnrollClose",
138 &EnrollmentScreenHandler::HandleClose); 143 &EnrollmentScreenHandler::HandleClose);
139 AddCallback("oauthEnrollCompleteLogin", 144 AddCallback("oauthEnrollCompleteLogin",
140 &EnrollmentScreenHandler::HandleCompleteLogin); 145 &EnrollmentScreenHandler::HandleCompleteLogin);
146 AddCallback("oauthEnrollADCompleteLogin",
147 &EnrollmentScreenHandler::HandleADCompleteLogin);
141 AddCallback("oauthEnrollRetry", 148 AddCallback("oauthEnrollRetry",
142 &EnrollmentScreenHandler::HandleRetry); 149 &EnrollmentScreenHandler::HandleRetry);
143 AddCallback("frameLoadingCompleted", 150 AddCallback("frameLoadingCompleted",
144 &EnrollmentScreenHandler::HandleFrameLoadingCompleted); 151 &EnrollmentScreenHandler::HandleFrameLoadingCompleted);
145 AddCallback("oauthEnrollAttributes", 152 AddCallback("oauthEnrollAttributes",
146 &EnrollmentScreenHandler::HandleDeviceAttributesProvided); 153 &EnrollmentScreenHandler::HandleDeviceAttributesProvided);
147 AddCallback("oauthEnrollOnLearnMore", 154 AddCallback("oauthEnrollOnLearnMore",
148 &EnrollmentScreenHandler::HandleOnLearnMore); 155 &EnrollmentScreenHandler::HandleOnLearnMore);
149 } 156 }
150 157
(...skipping 19 matching lines...) Expand all
170 } 177 }
171 178
172 void EnrollmentScreenHandler::Hide() { 179 void EnrollmentScreenHandler::Hide() {
173 } 180 }
174 181
175 void EnrollmentScreenHandler::ShowSigninScreen() { 182 void EnrollmentScreenHandler::ShowSigninScreen() {
176 observe_network_failure_ = true; 183 observe_network_failure_ = true;
177 ShowStep(kEnrollmentStepSignin); 184 ShowStep(kEnrollmentStepSignin);
178 } 185 }
179 186
187 void EnrollmentScreenHandler::ShowADJoin() {
188 observe_network_failure_ = false;
189 ShowStep(kEnrollmentStepADJoin);
190 }
191
180 void EnrollmentScreenHandler::ShowAttributePromptScreen( 192 void EnrollmentScreenHandler::ShowAttributePromptScreen(
181 const std::string& asset_id, 193 const std::string& asset_id,
182 const std::string& location) { 194 const std::string& location) {
183 CallJS("showAttributePromptStep", asset_id, location); 195 CallJS("showAttributePromptStep", asset_id, location);
184 } 196 }
185 197
186 void EnrollmentScreenHandler::ShowEnrollmentSpinnerScreen() { 198 void EnrollmentScreenHandler::ShowEnrollmentSpinnerScreen() {
187 ShowStep(kEnrollmentStepWorking); 199 ShowStep(kEnrollmentStepWorking);
188 } 200 }
189 201
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
378 IDS_ENTERPRISE_ENROLLMENT_EXPLAIN_ATTRIBUTE_LINK); 390 IDS_ENTERPRISE_ENROLLMENT_EXPLAIN_ATTRIBUTE_LINK);
379 builder->Add("oauthEnrollAttributeExplanation", 391 builder->Add("oauthEnrollAttributeExplanation",
380 IDS_ENTERPRISE_ENROLLMENT_ATTRIBUTE_EXPLANATION); 392 IDS_ENTERPRISE_ENROLLMENT_ATTRIBUTE_EXPLANATION);
381 builder->Add("oauthEnrollAssetIdLabel", 393 builder->Add("oauthEnrollAssetIdLabel",
382 IDS_ENTERPRISE_ENROLLMENT_ASSET_ID_LABEL); 394 IDS_ENTERPRISE_ENROLLMENT_ASSET_ID_LABEL);
383 builder->Add("oauthEnrollLocationLabel", 395 builder->Add("oauthEnrollLocationLabel",
384 IDS_ENTERPRISE_ENROLLMENT_LOCATION_LABEL); 396 IDS_ENTERPRISE_ENROLLMENT_LOCATION_LABEL);
385 builder->Add("oauthEnrollWorking", IDS_ENTERPRISE_ENROLLMENT_WORKING_MESSAGE); 397 builder->Add("oauthEnrollWorking", IDS_ENTERPRISE_ENROLLMENT_WORKING_MESSAGE);
386 // Do not use AddF for this string as it will be rendered by the JS code. 398 // Do not use AddF for this string as it will be rendered by the JS code.
387 builder->Add("oauthEnrollAbeSuccess", IDS_ENTERPRISE_ENROLLMENT_ABE_SUCCESS); 399 builder->Add("oauthEnrollAbeSuccess", IDS_ENTERPRISE_ENROLLMENT_ABE_SUCCESS);
400 builder->Add("oauthEnrollADMachineNameInput",
401 IDS_AD_MACHINE_NAME_INPUT_LABEL);
402 builder->Add("oauthEnrollADDomainJoinWelcomeMessage",
403 IDS_AD_DOMAIN_JOIN_WELCOME_MESSAGE);
404 builder->Add("ADLoginUser", IDS_AD_LOGIN_USER);
405 builder->Add("ADLoginPassword", IDS_AD_LOGIN_PASSWORD);
388 } 406 }
389 407
390 bool EnrollmentScreenHandler::IsOnEnrollmentScreen() const { 408 bool EnrollmentScreenHandler::IsOnEnrollmentScreen() const {
391 return (GetCurrentScreen() == OobeScreen::SCREEN_OOBE_ENROLLMENT); 409 return (GetCurrentScreen() == OobeScreen::SCREEN_OOBE_ENROLLMENT);
392 } 410 }
393 411
394 bool EnrollmentScreenHandler::IsEnrollmentScreenHiddenByError() const { 412 bool EnrollmentScreenHandler::IsEnrollmentScreenHiddenByError() const {
395 return (GetCurrentScreen() == OobeScreen::SCREEN_ERROR_MESSAGE && 413 return (GetCurrentScreen() == OobeScreen::SCREEN_ERROR_MESSAGE &&
396 network_error_model_->GetParentScreen() == 414 network_error_model_->GetParentScreen() ==
397 OobeScreen::SCREEN_OOBE_ENROLLMENT); 415 OobeScreen::SCREEN_OOBE_ENROLLMENT);
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
507 } 525 }
508 526
509 void EnrollmentScreenHandler::HandleCompleteLogin( 527 void EnrollmentScreenHandler::HandleCompleteLogin(
510 const std::string& user, 528 const std::string& user,
511 const std::string& auth_code) { 529 const std::string& auth_code) {
512 observe_network_failure_ = false; 530 observe_network_failure_ = false;
513 DCHECK(controller_); 531 DCHECK(controller_);
514 controller_->OnLoginDone(gaia::SanitizeEmail(user), auth_code); 532 controller_->OnLoginDone(gaia::SanitizeEmail(user), auth_code);
515 } 533 }
516 534
535 void EnrollmentScreenHandler::HandleADCompleteLogin(
536 const std::string& machine_name,
537 const std::string& user,
538 const std::string& password) {
539 observe_network_failure_ = false;
540 DCHECK(controller_);
541 chromeos::AuthpolicyClient* client =
542 chromeos::DBusThreadManager::Get()->GetAuthpolicyClient();
543
544 client->Join(machine_name,
545 user,
546 password,
547 base::Bind(&EnrollmentScreenHandler::HandleADDomainJoin,
548 weak_ptr_factory_.GetWeakPtr(),
549 machine_name,
550 user));
551 }
552
553 void EnrollmentScreenHandler::HandleADDomainJoin(
554 const std::string& machine_name,
555 const std::string& user,
556 int code) {
557 if (code == 0) {
558 controller_->OnADJoined(gaia::ExtractDomainName(user));
559 } else {
560 CallJS("invalidateAD", machine_name, user);
561 }
562 }
563
517 void EnrollmentScreenHandler::HandleRetry() { 564 void EnrollmentScreenHandler::HandleRetry() {
518 DCHECK(controller_); 565 DCHECK(controller_);
519 controller_->OnRetry(); 566 controller_->OnRetry();
520 } 567 }
521 568
522 void EnrollmentScreenHandler::HandleFrameLoadingCompleted() { 569 void EnrollmentScreenHandler::HandleFrameLoadingCompleted() {
523 if (network_state_informer_->state() != NetworkStateInformer::ONLINE) 570 if (network_state_informer_->state() != NetworkStateInformer::ONLINE)
524 return; 571 return;
525 572
526 UpdateState(NetworkError::ERROR_REASON_UPDATE); 573 UpdateState(NetworkError::ERROR_REASON_UPDATE);
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
574 621
575 ShowScreenWithData(OobeScreen::SCREEN_OOBE_ENROLLMENT, &screen_data); 622 ShowScreenWithData(OobeScreen::SCREEN_OOBE_ENROLLMENT, &screen_data);
576 if (first_show_) { 623 if (first_show_) {
577 first_show_ = false; 624 first_show_ = false;
578 UpdateStateInternal(NetworkError::ERROR_REASON_UPDATE, true); 625 UpdateStateInternal(NetworkError::ERROR_REASON_UPDATE, true);
579 } 626 }
580 histogram_helper_->OnScreenShow(); 627 histogram_helper_->OnScreenShow();
581 } 628 }
582 629
583 } // namespace chromeos 630 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698