summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormnissler@chromium.org <mnissler@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-12 16:20:14 +0000
committermnissler@chromium.org <mnissler@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-12 16:20:14 +0000
commit95976f8d61a4735069ea7baa902253df0b1ecf9c (patch)
tree3439a1c30c53e4de5e417c96739b71ddc7650d5f
parent2811a24e2d0f87f378ee676e7506602526348cd9 (diff)
downloadchromium_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.cc40
-rw-r--r--chrome/browser/chromeos/login/enrollment/enterprise_enrollment_screen.h1
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 {