diff options
author | mnissler@chromium.org <mnissler@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-12 16:20:14 +0000 |
---|---|---|
committer | mnissler@chromium.org <mnissler@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-12 16:20:14 +0000 |
commit | 95976f8d61a4735069ea7baa902253df0b1ecf9c (patch) | |
tree | 3439a1c30c53e4de5e417c96739b71ddc7650d5f | |
parent | 2811a24e2d0f87f378ee676e7506602526348cd9 (diff) | |
download | chromium_src-95976f8d61a4735069ea7baa902253df0b1ecf9c.zip chromium_src-95976f8d61a4735069ea7baa902253df0b1ecf9c.tar.gz chromium_src-95976f8d61a4735069ea7baa902253df0b1ecf9c.tar.bz2 |
Wire up enrollment with re-written enterprise enrollment code.
If --enable-cloud-policy-service is specified, have enrollment go
through DeviceCloudPolicyManagerChromeOS.
BUG=chromium:108928
TEST=Specify --enable-cloud-policy-service flag, check that enrollment still working.
Review URL: https://chromiumcodereview.appspot.com/11233062
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@167184 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/chromeos/login/enrollment/enterprise_enrollment_screen.cc | 40 | ||||
-rw-r--r-- | chrome/browser/chromeos/login/enrollment/enterprise_enrollment_screen.h | 1 |
2 files changed, 28 insertions, 13 deletions
diff --git a/chrome/browser/chromeos/login/enrollment/enterprise_enrollment_screen.cc b/chrome/browser/chromeos/login/enrollment/enterprise_enrollment_screen.cc index a1f4805..e20d81c 100644 --- a/chrome/browser/chromeos/login/enrollment/enterprise_enrollment_screen.cc +++ b/chrome/browser/chromeos/login/enrollment/enterprise_enrollment_screen.cc @@ -18,6 +18,7 @@ #include "chrome/browser/policy/auto_enrollment_client.h" #include "chrome/browser/policy/browser_policy_connector.h" #include "chrome/browser/policy/cloud_policy_data_store.h" +#include "chrome/browser/policy/device_cloud_policy_manager_chromeos.h" #include "chrome/browser/policy/enterprise_metrics.h" #include "chromeos/dbus/dbus_thread_manager.h" #include "chromeos/dbus/session_manager_client.h" @@ -343,23 +344,37 @@ void EnterpriseEnrollmentScreen::RegisterForDevicePolicy( const std::string& token) { policy::BrowserPolicyConnector* connector = g_browser_process->browser_policy_connector(); - if (!connector->device_cloud_policy_subsystem()) { + if (connector->IsEnterpriseManaged() && + connector->GetEnterpriseDomain() != gaia::ExtractDomainName(user_)) { + LOG(ERROR) << "Trying to re-enroll to a different domain than " + << connector->GetEnterpriseDomain(); + UMAFailure(policy::kMetricEnrollmentWrongUserError); + actor_->ShowUIError( + EnterpriseEnrollmentScreenActor::UI_ERROR_DOMAIN_MISMATCH); + NotifyTestingObservers(false); + return; + } + + // If a device cloud policy manager instance is available (i.e. new-style + // policy is switched on), use that path. + // TODO(mnissler): Remove the old-style enrollment code path once the code has + // switched to the new policy code by default. + if (connector->GetDeviceCloudPolicyManager()) { + policy::DeviceCloudPolicyManagerChromeOS::AllowedDeviceModes modes; + modes[policy::DEVICE_MODE_ENTERPRISE] = true; + modes[policy::DEVICE_MODE_KIOSK] = !is_auto_enrollment_; + connector->ScheduleServiceInitialization(0); + connector->GetDeviceCloudPolicyManager()->StartEnrollment( + token, modes, + base::Bind(&EnterpriseEnrollmentScreen::ReportEnrollmentStatus, + weak_ptr_factory_.GetWeakPtr())); + return; + } else if (!connector->device_cloud_policy_subsystem()) { LOG(ERROR) << "Cloud policy subsystem not initialized."; } else if (connector->device_cloud_policy_subsystem()->state() == policy::CloudPolicySubsystem::SUCCESS) { LOG(ERROR) << "A previous enrollment already succeeded!"; } else { - if (connector->IsEnterpriseManaged() && - connector->GetEnterpriseDomain() != gaia::ExtractDomainName(user_)) { - LOG(ERROR) << "Trying to re-enroll to a different domain than " - << connector->GetEnterpriseDomain(); - UMAFailure(policy::kMetricEnrollmentWrongUserError); - actor_->ShowUIError( - EnterpriseEnrollmentScreenActor::UI_ERROR_DOMAIN_MISMATCH); - NotifyTestingObservers(false); - return; - } - // Make sure the device policy subsystem is in a clean slate. connector->ResetDevicePolicy(); connector->ScheduleServiceInitialization(0); @@ -372,6 +387,7 @@ void EnterpriseEnrollmentScreen::RegisterForDevicePolicy( connector->IsEnterpriseManaged()); return; } + NOTREACHED(); UMAFailure(policy::kMetricEnrollmentOtherFailed); actor_->ShowUIError(EnterpriseEnrollmentScreenActor::UI_ERROR_FATAL); diff --git a/chrome/browser/chromeos/login/enrollment/enterprise_enrollment_screen.h b/chrome/browser/chromeos/login/enrollment/enterprise_enrollment_screen.h index 9d5ec8f..525b01c 100644 --- a/chrome/browser/chromeos/login/enrollment/enterprise_enrollment_screen.h +++ b/chrome/browser/chromeos/login/enrollment/enterprise_enrollment_screen.h @@ -15,7 +15,6 @@ #include "chrome/browser/chromeos/login/wizard_screen.h" #include "chrome/browser/policy/cloud_policy_constants.h" #include "chrome/browser/policy/cloud_policy_subsystem.h" -#include "chrome/browser/policy/device_cloud_policy_manager_chromeos.h" namespace chromeos { |