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

Side by Side Diff: chrome/browser/policy/device_management_backend_impl.cc

Issue 7810025: Pass user_affiliation request parameter on user cloud policy requests. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix Mac build breakage. Created 9 years, 3 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/policy/device_management_backend_impl.h" 5 #include "chrome/browser/policy/device_management_backend_impl.h"
6 6
7 #include <utility> 7 #include <utility>
8 #include <vector> 8 #include <vector>
9 9
10 #if defined(OS_POSIX) && !defined(OS_MACOSX) 10 #if defined(OS_POSIX) && !defined(OS_MACOSX)
(...skipping 16 matching lines...) Expand all
27 namespace policy { 27 namespace policy {
28 28
29 // Name constants for URL query parameters. 29 // Name constants for URL query parameters.
30 const char DeviceManagementBackendImpl::kParamAgent[] = "agent"; 30 const char DeviceManagementBackendImpl::kParamAgent[] = "agent";
31 const char DeviceManagementBackendImpl::kParamAppType[] = "apptype"; 31 const char DeviceManagementBackendImpl::kParamAppType[] = "apptype";
32 const char DeviceManagementBackendImpl::kParamDeviceID[] = "deviceid"; 32 const char DeviceManagementBackendImpl::kParamDeviceID[] = "deviceid";
33 const char DeviceManagementBackendImpl::kParamDeviceType[] = "devicetype"; 33 const char DeviceManagementBackendImpl::kParamDeviceType[] = "devicetype";
34 const char DeviceManagementBackendImpl::kParamOAuthToken[] = "oauth_token"; 34 const char DeviceManagementBackendImpl::kParamOAuthToken[] = "oauth_token";
35 const char DeviceManagementBackendImpl::kParamPlatform[] = "platform"; 35 const char DeviceManagementBackendImpl::kParamPlatform[] = "platform";
36 const char DeviceManagementBackendImpl::kParamRequest[] = "request"; 36 const char DeviceManagementBackendImpl::kParamRequest[] = "request";
37 const char DeviceManagementBackendImpl::kParamUserAffiliation[] =
38 "user_affiliation";
37 39
38 // String constants for the device and app type we report to the server. 40 // String constants for the device and app type we report to the server.
39 const char DeviceManagementBackendImpl::kValueAppType[] = "Chrome"; 41 const char DeviceManagementBackendImpl::kValueAppType[] = "Chrome";
40 const char DeviceManagementBackendImpl::kValueDeviceType[] = "2"; 42 const char DeviceManagementBackendImpl::kValueDeviceType[] = "2";
41 const char DeviceManagementBackendImpl::kValueRequestPolicy[] = "policy"; 43 const char DeviceManagementBackendImpl::kValueRequestPolicy[] = "policy";
42 const char DeviceManagementBackendImpl::kValueRequestRegister[] = "register"; 44 const char DeviceManagementBackendImpl::kValueRequestRegister[] = "register";
43 const char DeviceManagementBackendImpl::kValueRequestUnregister[] = 45 const char DeviceManagementBackendImpl::kValueRequestUnregister[] =
44 "unregister"; 46 "unregister";
47 const char DeviceManagementBackendImpl::kValueUserAffiliationManaged[] =
48 "managed";
49 const char DeviceManagementBackendImpl::kValueUserAffiliationNone[] = "none";
45 50
46 namespace { 51 namespace {
47 52
48 const char kValueAgent[] = "%s %s(%s)"; 53 const char kValueAgent[] = "%s %s(%s)";
49 const char kValuePlatform[] = "%s|%s|%s"; 54 const char kValuePlatform[] = "%s|%s|%s";
50 55
51 const char kPostContentType[] = "application/protobuf"; 56 const char kPostContentType[] = "application/protobuf";
52 57
53 const char kServiceTokenAuthHeader[] = "Authorization: GoogleLogin auth="; 58 const char kServiceTokenAuthHeader[] = "Authorization: GoogleLogin auth=";
54 const char kDMTokenAuthHeader[] = "Authorization: GoogleDMToken token="; 59 const char kDMTokenAuthHeader[] = "Authorization: GoogleDMToken token=";
55 60
56 // HTTP Error Codes of the DM Server with their concrete meinings in the context 61 // HTTP Error Codes of the DM Server with their concrete meinings in the context
57 // of the DM Server communication. 62 // of the DM Server communication.
58 const int kSuccess = 200; 63 const int kSuccess = 200;
59 const int kInvalidArgument = 400; 64 const int kInvalidArgument = 400;
60 const int kInvalidAuthCookieOrDMToken = 401; 65 const int kInvalidAuthCookieOrDMToken = 401;
61 const int kDeviceManagementNotAllowed = 403; 66 const int kDeviceManagementNotAllowed = 403;
62 const int kInvalidURL = 404; // This error is not coming from the GFE. 67 const int kInvalidURL = 404; // This error is not coming from the GFE.
63 const int kDeviceNotFound = 410; 68 const int kDeviceNotFound = 410;
64 const int kPendingApproval = 412; 69 const int kPendingApproval = 412;
65 const int kInternalServerError = 500; 70 const int kInternalServerError = 500;
66 const int kServiceUnavailable = 503; 71 const int kServiceUnavailable = 503;
67 const int kPolicyNotFound = 902; // This error is not sent as HTTP status code. 72 const int kPolicyNotFound = 902; // This error is not sent as HTTP status code.
68 73
69 // TODO(pastarmovj): Legacy error codes are here for comaptibility only. They 74 // TODO(pastarmovj): Legacy error codes are here for comaptibility only. They
70 // should be removed once the DM Server has been updated. 75 // should be removed once the DM Server has been updated.
71 const int kPendingApprovalLegacy = 491; 76 const int kPendingApprovalLegacy = 491;
72 const int kDeviceNotFoundLegacy = 901; 77 const int kDeviceNotFoundLegacy = 901;
73 78
74
75 #if defined(OS_CHROMEOS) 79 #if defined(OS_CHROMEOS)
76 // Machine info keys. 80 // Machine info keys.
77 const char kMachineInfoHWClass[] = "hardware_class"; 81 const char kMachineInfoHWClass[] = "hardware_class";
78 const char kMachineInfoBoard[] = "CHROMEOS_RELEASE_BOARD"; 82 const char kMachineInfoBoard[] = "CHROMEOS_RELEASE_BOARD";
79 #endif 83 #endif
80 84
81 } // namespace 85 } // namespace
82 86
83 // Helper class for URL query parameter encoding/decoding. 87 // Helper class for URL query parameter encoding/decoding.
84 class URLQueryParameters { 88 class URLQueryParameters {
(...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after
377 DISALLOW_COPY_AND_ASSIGN(DeviceManagementUnregisterJob); 381 DISALLOW_COPY_AND_ASSIGN(DeviceManagementUnregisterJob);
378 }; 382 };
379 383
380 // Handles policy request jobs. 384 // Handles policy request jobs.
381 class DeviceManagementPolicyJob : public DeviceManagementJobBase { 385 class DeviceManagementPolicyJob : public DeviceManagementJobBase {
382 public: 386 public:
383 DeviceManagementPolicyJob( 387 DeviceManagementPolicyJob(
384 DeviceManagementBackendImpl* backend_impl, 388 DeviceManagementBackendImpl* backend_impl,
385 const std::string& device_management_token, 389 const std::string& device_management_token,
386 const std::string& device_id, 390 const std::string& device_id,
391 const std::string& user_affiliation,
387 const em::DevicePolicyRequest& request, 392 const em::DevicePolicyRequest& request,
388 DeviceManagementBackend::DevicePolicyResponseDelegate* delegate) 393 DeviceManagementBackend::DevicePolicyResponseDelegate* delegate)
389 : DeviceManagementJobBase( 394 : DeviceManagementJobBase(
390 backend_impl, 395 backend_impl,
391 DeviceManagementBackendImpl::kValueRequestPolicy, 396 DeviceManagementBackendImpl::kValueRequestPolicy,
392 device_id), 397 device_id),
393 delegate_(delegate) { 398 delegate_(delegate) {
394 SetDeviceManagementToken(device_management_token); 399 SetDeviceManagementToken(device_management_token);
400 SetQueryParam(DeviceManagementBackendImpl::kParamUserAffiliation,
401 user_affiliation);
395 em::DeviceManagementRequest request_wrapper; 402 em::DeviceManagementRequest request_wrapper;
396 request_wrapper.mutable_policy_request()->CopyFrom(request); 403 request_wrapper.mutable_policy_request()->CopyFrom(request);
397 SetPayload(request_wrapper); 404 SetPayload(request_wrapper);
398 } 405 }
399 virtual ~DeviceManagementPolicyJob() {} 406 virtual ~DeviceManagementPolicyJob() {}
400 407
401 private: 408 private:
402 // DeviceManagementJobBase overrides. 409 // DeviceManagementJobBase overrides.
403 virtual void OnError(DeviceManagementBackend::ErrorCode error) { 410 virtual void OnError(DeviceManagementBackend::ErrorCode error) {
404 MetricPolicy sample; 411 MetricPolicy sample;
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
531 const std::string& device_id, 538 const std::string& device_id,
532 const em::DeviceUnregisterRequest& request, 539 const em::DeviceUnregisterRequest& request,
533 DeviceUnregisterResponseDelegate* delegate) { 540 DeviceUnregisterResponseDelegate* delegate) {
534 AddJob(new DeviceManagementUnregisterJob(this, device_management_token, 541 AddJob(new DeviceManagementUnregisterJob(this, device_management_token,
535 device_id, request, delegate)); 542 device_id, request, delegate));
536 } 543 }
537 544
538 void DeviceManagementBackendImpl::ProcessPolicyRequest( 545 void DeviceManagementBackendImpl::ProcessPolicyRequest(
539 const std::string& device_management_token, 546 const std::string& device_management_token,
540 const std::string& device_id, 547 const std::string& device_id,
548 CloudPolicyDataStore::UserAffiliation affiliation,
541 const em::DevicePolicyRequest& request, 549 const em::DevicePolicyRequest& request,
542 DevicePolicyResponseDelegate* delegate) { 550 DevicePolicyResponseDelegate* delegate) {
543 UMA_HISTOGRAM_ENUMERATION(kMetricPolicy, kMetricPolicyFetchRequested, 551 UMA_HISTOGRAM_ENUMERATION(kMetricPolicy, kMetricPolicyFetchRequested,
544 kMetricPolicySize); 552 kMetricPolicySize);
545 AddJob(new DeviceManagementPolicyJob(this, device_management_token, device_id, 553 AddJob(new DeviceManagementPolicyJob(this, device_management_token, device_id,
554 UserAffiliationToString(affiliation),
546 request, delegate)); 555 request, delegate));
547 } 556 }
548 557
558 // static
559 const char* DeviceManagementBackendImpl::UserAffiliationToString(
560 CloudPolicyDataStore::UserAffiliation affiliation) {
561 switch (affiliation) {
562 case CloudPolicyDataStore::USER_AFFILIATION_MANAGED:
563 return kValueUserAffiliationManaged;
564 case CloudPolicyDataStore::USER_AFFILIATION_NONE:
565 return kValueUserAffiliationNone;
566 }
567 NOTREACHED();
568 return kValueUserAffiliationNone;
569 }
570
549 } // namespace policy 571 } // namespace policy
OLDNEW
« no previous file with comments | « chrome/browser/policy/device_management_backend_impl.h ('k') | chrome/browser/policy/device_management_service_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698