Home | History | Annotate | Download | only in cloud
      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 #include "components/policy/core/browser/cloud/message_util.h"
      6 
      7 #include "base/logging.h"
      8 #include "grit/components_strings.h"
      9 #include "ui/base/l10n/l10n_util.h"
     10 
     11 namespace policy {
     12 
     13 namespace {
     14 
     15 int GetIDSForDMStatus(DeviceManagementStatus status) {
     16   switch (status) {
     17     case DM_STATUS_SUCCESS:
     18       return IDS_POLICY_DM_STATUS_SUCCESS;
     19     case DM_STATUS_REQUEST_INVALID:
     20       return IDS_POLICY_DM_STATUS_REQUEST_INVALID;
     21     case DM_STATUS_REQUEST_FAILED:
     22       return IDS_POLICY_DM_STATUS_REQUEST_FAILED;
     23     case DM_STATUS_TEMPORARY_UNAVAILABLE:
     24       return IDS_POLICY_DM_STATUS_TEMPORARY_UNAVAILABLE;
     25     case DM_STATUS_HTTP_STATUS_ERROR:
     26       return IDS_POLICY_DM_STATUS_HTTP_STATUS_ERROR;
     27     case DM_STATUS_RESPONSE_DECODING_ERROR:
     28       return IDS_POLICY_DM_STATUS_RESPONSE_DECODING_ERROR;
     29     case DM_STATUS_SERVICE_MANAGEMENT_NOT_SUPPORTED:
     30       return IDS_POLICY_DM_STATUS_SERVICE_MANAGEMENT_NOT_SUPPORTED;
     31     case DM_STATUS_SERVICE_DEVICE_NOT_FOUND:
     32       return IDS_POLICY_DM_STATUS_SERVICE_DEVICE_NOT_FOUND;
     33     case DM_STATUS_SERVICE_MANAGEMENT_TOKEN_INVALID:
     34       return IDS_POLICY_DM_STATUS_SERVICE_MANAGEMENT_TOKEN_INVALID;
     35     case DM_STATUS_SERVICE_ACTIVATION_PENDING:
     36       return IDS_POLICY_DM_STATUS_SERVICE_ACTIVATION_PENDING;
     37     case DM_STATUS_SERVICE_INVALID_SERIAL_NUMBER:
     38       return IDS_POLICY_DM_STATUS_SERVICE_INVALID_SERIAL_NUMBER;
     39     case DM_STATUS_SERVICE_DEVICE_ID_CONFLICT:
     40       return IDS_POLICY_DM_STATUS_SERVICE_DEVICE_ID_CONFLICT;
     41     case DM_STATUS_SERVICE_MISSING_LICENSES:
     42       return IDS_POLICY_DM_STATUS_SERVICE_MISSING_LICENSES;
     43     case DM_STATUS_SERVICE_DEPROVISIONED:
     44       return IDS_POLICY_DM_STATUS_SERVICE_DEPROVISIONED;
     45     case DM_STATUS_SERVICE_DOMAIN_MISMATCH:
     46       return IDS_POLICY_DM_STATUS_SERVICE_DOMAIN_MISMATCH;
     47     case DM_STATUS_SERVICE_POLICY_NOT_FOUND:
     48       return IDS_POLICY_DM_STATUS_SERVICE_POLICY_NOT_FOUND;
     49   }
     50   NOTREACHED() << "Unhandled DM status " << status;
     51   return IDS_POLICY_DM_STATUS_UNKNOWN_ERROR;
     52 }
     53 
     54 int GetIDSForValidationStatus(CloudPolicyValidatorBase::Status status) {
     55   switch (status) {
     56     case CloudPolicyValidatorBase::VALIDATION_OK:
     57       return IDS_POLICY_VALIDATION_OK;
     58     case CloudPolicyValidatorBase::VALIDATION_BAD_INITIAL_SIGNATURE:
     59       return IDS_POLICY_VALIDATION_BAD_INITIAL_SIGNATURE;
     60     case CloudPolicyValidatorBase::VALIDATION_BAD_SIGNATURE:
     61       return IDS_POLICY_VALIDATION_BAD_SIGNATURE;
     62     case CloudPolicyValidatorBase::VALIDATION_ERROR_CODE_PRESENT:
     63       return IDS_POLICY_VALIDATION_ERROR_CODE_PRESENT;
     64     case CloudPolicyValidatorBase::VALIDATION_PAYLOAD_PARSE_ERROR:
     65       return IDS_POLICY_VALIDATION_PAYLOAD_PARSE_ERROR;
     66     case CloudPolicyValidatorBase::VALIDATION_WRONG_POLICY_TYPE:
     67       return IDS_POLICY_VALIDATION_WRONG_POLICY_TYPE;
     68     case CloudPolicyValidatorBase::VALIDATION_WRONG_SETTINGS_ENTITY_ID:
     69       return IDS_POLICY_VALIDATION_WRONG_SETTINGS_ENTITY_ID;
     70     case CloudPolicyValidatorBase::VALIDATION_BAD_TIMESTAMP:
     71       return IDS_POLICY_VALIDATION_BAD_TIMESTAMP;
     72     case CloudPolicyValidatorBase::VALIDATION_WRONG_TOKEN:
     73       return IDS_POLICY_VALIDATION_WRONG_TOKEN;
     74     case CloudPolicyValidatorBase::VALIDATION_BAD_USERNAME:
     75       return IDS_POLICY_VALIDATION_BAD_USERNAME;
     76     case CloudPolicyValidatorBase::VALIDATION_POLICY_PARSE_ERROR:
     77       return IDS_POLICY_VALIDATION_POLICY_PARSE_ERROR;
     78     case CloudPolicyValidatorBase::VALIDATION_BAD_KEY_VERIFICATION_SIGNATURE:
     79       return IDS_POLICY_VALIDATION_BAD_KEY_VERIFICATION_SIGNATURE;
     80     case CloudPolicyValidatorBase::VALIDATION_STATUS_SIZE:
     81       NOTREACHED();
     82   }
     83   NOTREACHED() << "Unhandled validation status " << status;
     84   return IDS_POLICY_VALIDATION_UNKNOWN_ERROR;
     85 }
     86 
     87 int GetIDSForStoreStatus(CloudPolicyStore::Status status) {
     88   switch (status) {
     89     case CloudPolicyStore::STATUS_OK:
     90       return IDS_POLICY_STORE_STATUS_OK;
     91     case CloudPolicyStore::STATUS_LOAD_ERROR:
     92       return IDS_POLICY_STORE_STATUS_LOAD_ERROR;
     93     case CloudPolicyStore::STATUS_STORE_ERROR:
     94       return IDS_POLICY_STORE_STATUS_STORE_ERROR;
     95     case CloudPolicyStore::STATUS_PARSE_ERROR:
     96       return IDS_POLICY_STORE_STATUS_PARSE_ERROR;
     97     case CloudPolicyStore::STATUS_SERIALIZE_ERROR:
     98       return IDS_POLICY_STORE_STATUS_SERIALIZE_ERROR;
     99     case CloudPolicyStore::STATUS_VALIDATION_ERROR:
    100       // This is handled separately below to include the validation error.
    101       break;
    102     case CloudPolicyStore::STATUS_BAD_STATE:
    103       return IDS_POLICY_STORE_STATUS_BAD_STATE;
    104   }
    105   NOTREACHED() << "Unhandled store status " << status;
    106   return IDS_POLICY_STORE_STATUS_UNKNOWN_ERROR;
    107 }
    108 
    109 }  // namespace
    110 
    111 base::string16 FormatDeviceManagementStatus(DeviceManagementStatus status) {
    112   return l10n_util::GetStringUTF16(GetIDSForDMStatus(status));
    113 }
    114 
    115 base::string16 FormatValidationStatus(
    116     CloudPolicyValidatorBase::Status validation_status) {
    117   return l10n_util::GetStringUTF16(
    118       GetIDSForValidationStatus(validation_status));
    119 }
    120 
    121 base::string16 FormatStoreStatus(
    122     CloudPolicyStore::Status store_status,
    123     CloudPolicyValidatorBase::Status validation_status) {
    124   if (store_status == CloudPolicyStore::STATUS_VALIDATION_ERROR) {
    125     return l10n_util::GetStringFUTF16(
    126         IDS_POLICY_STORE_STATUS_VALIDATION_ERROR,
    127         l10n_util::GetStringUTF16(
    128             GetIDSForValidationStatus(validation_status)));
    129   }
    130 
    131   return l10n_util::GetStringUTF16(GetIDSForStoreStatus(store_status));
    132 }
    133 
    134 }  // namespace policy
    135