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 3 // found in the LICENSE file. 4 5 #ifndef CHROME_BROWSER_CHROMEOS_POLICY_ENROLLMENT_STATUS_CHROMEOS_H_ 6 #define CHROME_BROWSER_CHROMEOS_POLICY_ENROLLMENT_STATUS_CHROMEOS_H_ 7 8 #include "chrome/browser/policy/cloud/cloud_policy_constants.h" 9 #include "chrome/browser/policy/cloud/cloud_policy_store.h" 10 #include "chrome/browser/policy/cloud/cloud_policy_validator.h" 11 12 namespace policy { 13 14 // Describes the result of an enrollment operation, including the relevant error 15 // codes received from the involved components. 16 class EnrollmentStatus { 17 public: 18 // Enrollment status codes. 19 enum Status { 20 STATUS_SUCCESS, // Enrollment succeeded. 21 STATUS_REGISTRATION_FAILED, // DM registration failed. 22 STATUS_REGISTRATION_BAD_MODE, // Bad device mode. 23 STATUS_POLICY_FETCH_FAILED, // DM policy fetch failed. 24 STATUS_VALIDATION_FAILED, // Policy validation failed. 25 STATUS_LOCK_ERROR, // Cryptohome failed to lock the device. 26 STATUS_LOCK_TIMEOUT, // Timeout while waiting for the lock. 27 STATUS_LOCK_WRONG_USER, // Locked to different domain. 28 STATUS_STORE_ERROR, // Failed to store the policy. 29 }; 30 31 // Helpers for constructing errors for relevant cases. 32 static EnrollmentStatus ForStatus(Status status); 33 static EnrollmentStatus ForRegistrationError( 34 DeviceManagementStatus client_status); 35 static EnrollmentStatus ForFetchError(DeviceManagementStatus client_status); 36 static EnrollmentStatus ForValidationError( 37 CloudPolicyValidatorBase::Status validation_status); 38 static EnrollmentStatus ForStoreError( 39 CloudPolicyStore::Status store_error, 40 CloudPolicyValidatorBase::Status validation_status); 41 42 Status status() const { return status_; } 43 DeviceManagementStatus client_status() const { return client_status_; } 44 CloudPolicyStore::Status store_status() const { return store_status_; } 45 CloudPolicyValidatorBase::Status validation_status() const { 46 return validation_status_; 47 } 48 49 private: 50 EnrollmentStatus(Status status, 51 DeviceManagementStatus client_status, 52 CloudPolicyStore::Status store_status, 53 CloudPolicyValidatorBase::Status validation_status); 54 55 Status status_; 56 DeviceManagementStatus client_status_; 57 CloudPolicyStore::Status store_status_; 58 CloudPolicyValidatorBase::Status validation_status_; 59 }; 60 61 } // namespace policy 62 63 #endif // CHROME_BROWSER_CHROMEOS_POLICY_ENROLLMENT_STATUS_CHROMEOS_H_ 64