Index: chrome/browser/policy/device_management_backend_impl.cc |
diff --git a/chrome/browser/policy/device_management_backend_impl.cc b/chrome/browser/policy/device_management_backend_impl.cc |
index 03092dcff7ffc7f99ee56db81171484031b58af6..9198380be56bafea52c6d32fef7d1aa88aa323ab 100644 |
--- a/chrome/browser/policy/device_management_backend_impl.cc |
+++ b/chrome/browser/policy/device_management_backend_impl.cc |
@@ -34,6 +34,8 @@ const char DeviceManagementBackendImpl::kParamDeviceType[] = "devicetype"; |
const char DeviceManagementBackendImpl::kParamOAuthToken[] = "oauth_token"; |
const char DeviceManagementBackendImpl::kParamPlatform[] = "platform"; |
const char DeviceManagementBackendImpl::kParamRequest[] = "request"; |
+const char DeviceManagementBackendImpl::kParamUserAffiliation[] = |
+ "user_affiliation"; |
// String constants for the device and app type we report to the server. |
const char DeviceManagementBackendImpl::kValueAppType[] = "Chrome"; |
@@ -42,6 +44,9 @@ const char DeviceManagementBackendImpl::kValueRequestPolicy[] = "policy"; |
const char DeviceManagementBackendImpl::kValueRequestRegister[] = "register"; |
const char DeviceManagementBackendImpl::kValueRequestUnregister[] = |
"unregister"; |
+const char DeviceManagementBackendImpl::kValueUserAffiliationManaged[] = |
+ "managed"; |
+const char DeviceManagementBackendImpl::kValueUserAffiliationNone[] = "none"; |
namespace { |
@@ -71,7 +76,6 @@ const int kPolicyNotFound = 902; // This error is not sent as HTTP status code. |
const int kPendingApprovalLegacy = 491; |
const int kDeviceNotFoundLegacy = 901; |
- |
#if defined(OS_CHROMEOS) |
// Machine info keys. |
const char kMachineInfoHWClass[] = "hardware_class"; |
@@ -384,6 +388,7 @@ class DeviceManagementPolicyJob : public DeviceManagementJobBase { |
DeviceManagementBackendImpl* backend_impl, |
const std::string& device_management_token, |
const std::string& device_id, |
+ const std::string& user_affiliation, |
const em::DevicePolicyRequest& request, |
DeviceManagementBackend::DevicePolicyResponseDelegate* delegate) |
: DeviceManagementJobBase( |
@@ -392,6 +397,8 @@ class DeviceManagementPolicyJob : public DeviceManagementJobBase { |
device_id), |
delegate_(delegate) { |
SetDeviceManagementToken(device_management_token); |
+ SetQueryParam(DeviceManagementBackendImpl::kParamUserAffiliation, |
+ user_affiliation); |
em::DeviceManagementRequest request_wrapper; |
request_wrapper.mutable_policy_request()->CopyFrom(request); |
SetPayload(request_wrapper); |
@@ -538,12 +545,27 @@ void DeviceManagementBackendImpl::ProcessUnregisterRequest( |
void DeviceManagementBackendImpl::ProcessPolicyRequest( |
const std::string& device_management_token, |
const std::string& device_id, |
+ CloudPolicyDataStore::UserAffiliation affiliation, |
const em::DevicePolicyRequest& request, |
DevicePolicyResponseDelegate* delegate) { |
UMA_HISTOGRAM_ENUMERATION(kMetricPolicy, kMetricPolicyFetchRequested, |
kMetricPolicySize); |
AddJob(new DeviceManagementPolicyJob(this, device_management_token, device_id, |
+ UserAffiliationToString(affiliation), |
request, delegate)); |
} |
+// static |
+const char* DeviceManagementBackendImpl::UserAffiliationToString( |
+ CloudPolicyDataStore::UserAffiliation affiliation) { |
+ switch (affiliation) { |
+ case CloudPolicyDataStore::USER_AFFILIATION_MANAGED: |
+ return kValueUserAffiliationManaged; |
+ case CloudPolicyDataStore::USER_AFFILIATION_NONE: |
+ return kValueUserAffiliationNone; |
+ } |
+ NOTREACHED(); |
+ return kValueUserAffiliationNone; |
+} |
+ |
} // namespace policy |