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

Side by Side Diff: chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos.cc

Issue 14843009: Wire the device requisition parameter for enterprise enrollment. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix mock Created 7 years, 7 months 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 | Annotate | Revision Log
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/chromeos/policy/device_cloud_policy_manager_chromeos.h" 5 #include "chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "chrome/browser/chromeos/attestation/attestation_policy_observer.h" 9 #include "chrome/browser/chromeos/attestation/attestation_policy_observer.h"
10 #include "chrome/browser/chromeos/policy/device_cloud_policy_store_chromeos.h" 10 #include "chrome/browser/chromeos/policy/device_cloud_policy_store_chromeos.h"
11 #include "chrome/browser/chromeos/policy/enrollment_handler_chromeos.h" 11 #include "chrome/browser/chromeos/policy/enrollment_handler_chromeos.h"
12 #include "chrome/browser/chromeos/policy/enterprise_install_attributes.h" 12 #include "chrome/browser/chromeos/policy/enterprise_install_attributes.h"
13 #include "chrome/browser/chromeos/system/statistics_provider.h" 13 #include "chrome/browser/chromeos/system/statistics_provider.h"
14 #include "chrome/browser/policy/cloud/cloud_policy_constants.h" 14 #include "chrome/browser/policy/cloud/cloud_policy_constants.h"
15 #include "chrome/browser/policy/cloud/cloud_policy_store.h" 15 #include "chrome/browser/policy/cloud/cloud_policy_store.h"
16 #include "chrome/browser/policy/cloud/device_management_service.h" 16 #include "chrome/browser/policy/cloud/device_management_service.h"
17 #include "chrome/browser/policy/proto/cloud/device_management_backend.pb.h" 17 #include "chrome/browser/policy/proto/cloud/device_management_backend.pb.h"
18 #include "chrome/common/pref_names.h" 18 #include "chrome/common/pref_names.h"
19 #include "chromeos/chromeos_constants.h"
19 20
20 namespace em = enterprise_management; 21 namespace em = enterprise_management;
21 22
22 namespace policy { 23 namespace policy {
23 24
24 namespace { 25 namespace {
25 26
26 // MachineInfo key names. 27 // MachineInfo key names.
27 const char kMachineInfoSystemHwqual[] = "hardware_class"; 28 const char kMachineInfoSystemHwqual[] = "hardware_class";
28 29
(...skipping 13 matching lines...) Expand all
42 // 43 //
43 // TODO(mnissler): Move serial_number back to the top once the server side uses 44 // TODO(mnissler): Move serial_number back to the top once the server side uses
44 // the correct serial number. 45 // the correct serial number.
45 const char* kMachineInfoSerialNumberKeys[] = { 46 const char* kMachineInfoSerialNumberKeys[] = {
46 "Product_S/N", // Lumpy/Alex devices 47 "Product_S/N", // Lumpy/Alex devices
47 "serial_number", // VPD v2+ devices 48 "serial_number", // VPD v2+ devices
48 "Product_SN", // Mario 49 "Product_SN", // Mario
49 "sn", // old ZGB devices (more recent ones use serial_number) 50 "sn", // old ZGB devices (more recent ones use serial_number)
50 }; 51 };
51 52
53 // Fetches a machine statics from StatisticsProvider, returns an empty string on
54 // failure.
55 std::string GetMachineStatistic(const std::string& key) {
56 std::string value;
57 chromeos::system::StatisticsProvider* provider =
58 chromeos::system::StatisticsProvider::GetInstance();
59 if (!provider->GetMachineStatistic(key, &value))
60 LOG(WARNING) << "Failed to get machine statistic " << key;
61
62 return value;
63 }
64
52 } // namespace 65 } // namespace
53 66
54 DeviceCloudPolicyManagerChromeOS::DeviceCloudPolicyManagerChromeOS( 67 DeviceCloudPolicyManagerChromeOS::DeviceCloudPolicyManagerChromeOS(
55 scoped_ptr<DeviceCloudPolicyStoreChromeOS> store, 68 scoped_ptr<DeviceCloudPolicyStoreChromeOS> store,
56 EnterpriseInstallAttributes* install_attributes) 69 EnterpriseInstallAttributes* install_attributes)
57 : CloudPolicyManager( 70 : CloudPolicyManager(
58 PolicyNamespaceKey(dm_protocol::kChromeDevicePolicyType, 71 PolicyNamespaceKey(dm_protocol::kChromeDevicePolicyType,
59 std::string()), 72 std::string()),
60 store.get()), 73 store.get()),
61 device_store_(store.Pass()), 74 device_store_(store.Pass()),
(...skipping 19 matching lines...) Expand all
81 } 94 }
82 95
83 void DeviceCloudPolicyManagerChromeOS::StartEnrollment( 96 void DeviceCloudPolicyManagerChromeOS::StartEnrollment(
84 const std::string& auth_token, 97 const std::string& auth_token,
85 bool is_auto_enrollment, 98 bool is_auto_enrollment,
86 const AllowedDeviceModes& allowed_device_modes, 99 const AllowedDeviceModes& allowed_device_modes,
87 const EnrollmentCallback& callback) { 100 const EnrollmentCallback& callback) {
88 CHECK(device_management_service_); 101 CHECK(device_management_service_);
89 core()->Disconnect(); 102 core()->Disconnect();
90 103
104 if (requisition_.empty())
105 requisition_ = GetMachineStatistic(chromeos::kOemDeviceRequisitionKey);
106
91 enrollment_handler_.reset( 107 enrollment_handler_.reset(
92 new EnrollmentHandlerChromeOS( 108 new EnrollmentHandlerChromeOS(
93 device_store_.get(), install_attributes_, CreateClient(), auth_token, 109 device_store_.get(), install_attributes_, CreateClient(), auth_token,
94 install_attributes_->GetDeviceId(), is_auto_enrollment, 110 install_attributes_->GetDeviceId(), is_auto_enrollment,
95 allowed_device_modes, 111 requisition_, allowed_device_modes,
96 base::Bind(&DeviceCloudPolicyManagerChromeOS::EnrollmentCompleted, 112 base::Bind(&DeviceCloudPolicyManagerChromeOS::EnrollmentCompleted,
97 base::Unretained(this), callback))); 113 base::Unretained(this), callback)));
98 enrollment_handler_->StartEnrollment(); 114 enrollment_handler_->StartEnrollment();
99 } 115 }
100 116
101 void DeviceCloudPolicyManagerChromeOS::CancelEnrollment() { 117 void DeviceCloudPolicyManagerChromeOS::CancelEnrollment() {
102 if (enrollment_handler_.get()) { 118 if (enrollment_handler_.get()) {
103 enrollment_handler_.reset(); 119 enrollment_handler_.reset();
104 StartIfManaged(); 120 StartIfManaged();
105 } 121 }
(...skipping 25 matching lines...) Expand all
131 } 147 }
132 148
133 if (machine_id.empty()) 149 if (machine_id.empty())
134 LOG(WARNING) << "Failed to get machine id."; 150 LOG(WARNING) << "Failed to get machine id.";
135 151
136 return machine_id; 152 return machine_id;
137 } 153 }
138 154
139 // static 155 // static
140 std::string DeviceCloudPolicyManagerChromeOS::GetMachineModel() { 156 std::string DeviceCloudPolicyManagerChromeOS::GetMachineModel() {
141 std::string machine_model; 157 return GetMachineStatistic(kMachineInfoSystemHwqual);
142 chromeos::system::StatisticsProvider* provider =
143 chromeos::system::StatisticsProvider::GetInstance();
144 if (!provider->GetMachineStatistic(kMachineInfoSystemHwqual, &machine_model))
145 LOG(WARNING) << "Failed to get machine model.";
146
147 return machine_model;
148 } 158 }
149 159
150 scoped_ptr<CloudPolicyClient> DeviceCloudPolicyManagerChromeOS::CreateClient() { 160 scoped_ptr<CloudPolicyClient> DeviceCloudPolicyManagerChromeOS::CreateClient() {
151 return make_scoped_ptr( 161 return make_scoped_ptr(
152 new CloudPolicyClient(GetMachineID(), GetMachineModel(), 162 new CloudPolicyClient(GetMachineID(), GetMachineModel(),
153 USER_AFFILIATION_NONE, 163 USER_AFFILIATION_NONE,
154 device_status_provider_.get(), 164 device_status_provider_.get(),
155 device_management_service_)); 165 device_management_service_));
156 } 166 }
157 167
(...skipping 25 matching lines...) Expand all
183 core()->Connect(CreateClient()); 193 core()->Connect(CreateClient());
184 core()->StartRefreshScheduler(); 194 core()->StartRefreshScheduler();
185 core()->TrackRefreshDelayPref(local_state_, 195 core()->TrackRefreshDelayPref(local_state_,
186 prefs::kDevicePolicyRefreshRate); 196 prefs::kDevicePolicyRefreshRate);
187 attestation_policy_observer_.reset( 197 attestation_policy_observer_.reset(
188 new chromeos::attestation::AttestationPolicyObserver(client())); 198 new chromeos::attestation::AttestationPolicyObserver(client()));
189 } 199 }
190 } 200 }
191 201
192 } // namespace policy 202 } // namespace policy
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698