| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 #ifndef CHROME_BROWSER_CHROMEOS_LOGIN_ENROLLMENT_ENTERPRISE_ENROLLMENT_HELPER_H_ | 5 #ifndef CHROME_BROWSER_CHROMEOS_LOGIN_ENROLLMENT_ENTERPRISE_ENROLLMENT_HELPER_H_ |
| 6 #define CHROME_BROWSER_CHROMEOS_LOGIN_ENROLLMENT_ENTERPRISE_ENROLLMENT_HELPER_H_ | 6 #define CHROME_BROWSER_CHROMEOS_LOGIN_ENROLLMENT_ENTERPRISE_ENROLLMENT_HELPER_H_ |
| 7 | 7 |
| 8 #include <map> |
| 8 #include <memory> | 9 #include <memory> |
| 9 #include <string> | 10 #include <string> |
| 10 | 11 |
| 11 #include "base/callback_forward.h" | 12 #include "base/callback_forward.h" |
| 12 #include "base/macros.h" | 13 #include "base/macros.h" |
| 13 #include "chrome/browser/chromeos/policy/device_cloud_policy_initializer.h" | 14 #include "chrome/browser/chromeos/policy/device_cloud_policy_initializer.h" |
| 15 #include "components/policy/core/common/cloud/cloud_policy_constants.h" |
| 14 | 16 |
| 15 class GoogleServiceAuthError; | 17 class GoogleServiceAuthError; |
| 16 | 18 |
| 17 namespace policy { | 19 namespace policy { |
| 18 struct EnrollmentConfig; | 20 struct EnrollmentConfig; |
| 19 class EnrollmentStatus; | 21 class EnrollmentStatus; |
| 20 } | 22 } |
| 21 | 23 |
| 22 namespace chromeos { | 24 namespace chromeos { |
| 23 | 25 |
| 26 // Maps a license type to number of available licenses. |
| 27 using EnrollmentLicenseMap = std::map<policy::LicenseType, int>; |
| 28 |
| 24 class ActiveDirectoryJoinDelegate; | 29 class ActiveDirectoryJoinDelegate; |
| 25 | 30 |
| 26 // This class is capable to enroll the device into enterprise domain, using | 31 // This class is capable to enroll the device into enterprise domain, using |
| 27 // either a profile containing authentication data or OAuth token. | 32 // either a profile containing authentication data or OAuth token. |
| 28 // It can also clear an authentication data from the profile and revoke tokens | 33 // It can also clear an authentication data from the profile and revoke tokens |
| 29 // that are not longer needed. | 34 // that are not longer needed. |
| 30 class EnterpriseEnrollmentHelper { | 35 class EnterpriseEnrollmentHelper { |
| 31 public: | 36 public: |
| 32 typedef policy::DeviceCloudPolicyInitializer::EnrollmentCallback | 37 typedef policy::DeviceCloudPolicyInitializer::EnrollmentCallback |
| 33 EnrollmentCallback; | 38 EnrollmentCallback; |
| 34 | 39 |
| 35 // Enumeration of the possible errors that can occur during enrollment which | 40 // Enumeration of the possible errors that can occur during enrollment which |
| 36 // are not covered by GoogleServiceAuthError or EnrollmentStatus. | 41 // are not covered by GoogleServiceAuthError or EnrollmentStatus. |
| 37 enum OtherError { | 42 enum OtherError { |
| 38 // Existing enrollment domain doesn't match authentication user. | 43 // Existing enrollment domain doesn't match authentication user. |
| 39 OTHER_ERROR_DOMAIN_MISMATCH, | 44 OTHER_ERROR_DOMAIN_MISMATCH, |
| 40 // Unexpected error condition, indicates a bug in the code. | 45 // Unexpected error condition, indicates a bug in the code. |
| 41 OTHER_ERROR_FATAL | 46 OTHER_ERROR_FATAL |
| 42 }; | 47 }; |
| 43 | 48 |
| 44 class EnrollmentStatusConsumer { | 49 class EnrollmentStatusConsumer { |
| 45 public: | 50 public: |
| 46 // Called when an error happens on attempt to receive authentication tokens. | 51 // Called when an error happens on attempt to receive authentication tokens. |
| 47 virtual void OnAuthError(const GoogleServiceAuthError& error) = 0; | 52 virtual void OnAuthError(const GoogleServiceAuthError& error) = 0; |
| 48 | 53 |
| 54 // Called when there are multiple license types available for enrollment, |
| 55 // and admin allowed user to choose license type to assign. |
| 56 // Enrollment is paused, and will resume once UseLicenseType() is called. |
| 57 virtual void OnMultipleLicensesAvailable( |
| 58 const EnrollmentLicenseMap& licenses) = 0; |
| 59 |
| 49 // Called when an error happens during enrollment. | 60 // Called when an error happens during enrollment. |
| 50 virtual void OnEnrollmentError(policy::EnrollmentStatus status) = 0; | 61 virtual void OnEnrollmentError(policy::EnrollmentStatus status) = 0; |
| 51 | 62 |
| 52 // Called when some other error happens. | 63 // Called when some other error happens. |
| 53 virtual void OnOtherError(OtherError error) = 0; | 64 virtual void OnOtherError(OtherError error) = 0; |
| 54 | 65 |
| 55 // Called when enrollment finishes successfully. |additional_token| keeps | 66 // Called when enrollment finishes successfully. |additional_token| keeps |
| 56 // the additional access token, if it was requested by setting the | 67 // the additional access token, if it was requested by setting the |
| 57 // |fetch_additional_token| param of EnrollUsingProfile() to true. | 68 // |fetch_additional_token| param of EnrollUsingProfile() to true. |
| 58 // Otherwise, |additional_token| is empty. | 69 // Otherwise, |additional_token| is empty. |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 99 // Starts enterprise enrollment using |token|. | 110 // Starts enterprise enrollment using |token|. |
| 100 // EnrollUsingToken can be called only once during this object's lifetime, and | 111 // EnrollUsingToken can be called only once during this object's lifetime, and |
| 101 // only if none of the EnrollUsing* was called before. | 112 // only if none of the EnrollUsing* was called before. |
| 102 virtual void EnrollUsingToken(const std::string& token) = 0; | 113 virtual void EnrollUsingToken(const std::string& token) = 0; |
| 103 | 114 |
| 104 // Starts enterprise enrollment using PCA attestation. | 115 // Starts enterprise enrollment using PCA attestation. |
| 105 // EnrollUsingAttestation can be called only once during the object's | 116 // EnrollUsingAttestation can be called only once during the object's |
| 106 // lifetime, and only if none of the EnrollUsing* was called before. | 117 // lifetime, and only if none of the EnrollUsing* was called before. |
| 107 virtual void EnrollUsingAttestation() = 0; | 118 virtual void EnrollUsingAttestation() = 0; |
| 108 | 119 |
| 120 // Continue enrollment using license |type|. |
| 121 virtual void UseLicenseType(policy::LicenseType type) = 0; |
| 122 |
| 109 // Starts device attribute update process. First tries to get | 123 // Starts device attribute update process. First tries to get |
| 110 // permission to update device attributes for current user | 124 // permission to update device attributes for current user |
| 111 // using stored during enrollment oauth token. | 125 // using stored during enrollment oauth token. |
| 112 virtual void GetDeviceAttributeUpdatePermission() = 0; | 126 virtual void GetDeviceAttributeUpdatePermission() = 0; |
| 113 | 127 |
| 114 // Uploads device attributes on DM server. |asset_id| - Asset Identifier | 128 // Uploads device attributes on DM server. |asset_id| - Asset Identifier |
| 115 // and |location| - Assigned Location, these attributes were typed by | 129 // and |location| - Assigned Location, these attributes were typed by |
| 116 // current user on the device attribute prompt screen after successful | 130 // current user on the device attribute prompt screen after successful |
| 117 // enrollment. | 131 // enrollment. |
| 118 virtual void UpdateDeviceAttributes(const std::string& asset_id, | 132 virtual void UpdateDeviceAttributes(const std::string& asset_id, |
| (...skipping 20 matching lines...) Expand all Loading... |
| 139 // If this is not nullptr, then it will be used to create the enrollment | 153 // If this is not nullptr, then it will be used to create the enrollment |
| 140 // helper. |create_mock_enrollment_helper_| needs to outlive this class. | 154 // helper. |create_mock_enrollment_helper_| needs to outlive this class. |
| 141 static CreateMockEnrollmentHelper create_mock_enrollment_helper_; | 155 static CreateMockEnrollmentHelper create_mock_enrollment_helper_; |
| 142 | 156 |
| 143 DISALLOW_COPY_AND_ASSIGN(EnterpriseEnrollmentHelper); | 157 DISALLOW_COPY_AND_ASSIGN(EnterpriseEnrollmentHelper); |
| 144 }; | 158 }; |
| 145 | 159 |
| 146 } // namespace chromeos | 160 } // namespace chromeos |
| 147 | 161 |
| 148 #endif // CHROME_BROWSER_CHROMEOS_LOGIN_ENROLLMENT_ENTERPRISE_ENROLLMENT_HELPER
_H_ | 162 #endif // CHROME_BROWSER_CHROMEOS_LOGIN_ENROLLMENT_ENTERPRISE_ENROLLMENT_HELPER
_H_ |
| OLD | NEW |