enrollment_status_chromeos.h revision 2a99a7e74a7f215066514fe81d2bfa6639d9eddd
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 12namespace policy { 13 14// Describes the result of an enrollment operation, including the relevant error 15// codes received from the involved components. 16class 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