Index: components/policy/core/common/cloud/cloud_policy_constants.cc |
diff --git a/components/policy/core/common/cloud/cloud_policy_constants.cc b/components/policy/core/common/cloud/cloud_policy_constants.cc |
index 892deaa3ab61cd6587a6b340885c2544130cf773..a5a3d1e0849cd8de07b1141b87fb6d890871b5ad 100644 |
--- a/components/policy/core/common/cloud/cloud_policy_constants.cc |
+++ b/components/policy/core/common/cloud/cloud_policy_constants.cc |
@@ -6,7 +6,11 @@ |
#include "base/basictypes.h" |
#include "base/command_line.h" |
+#include "base/logging.h" |
#include "components/policy/core/common/policy_switches.h" |
+#include "policy/proto/device_management_backend.pb.h" |
+ |
+namespace em = enterprise_management; |
namespace policy { |
@@ -102,4 +106,26 @@ const char* GetChromeUserPolicyType() { |
return dm_protocol::kChromeUserPolicyType; |
} |
+ManagementMode GetManagementMode(const em::PolicyData& policy_data) { |
+ if (policy_data.has_management_mode()) { |
+ switch (policy_data.management_mode()) { |
+ case em::PolicyData::LOCAL_OWNER: |
+ return MANAGEMENT_MODE_LOCAL_OWNER; |
+ |
+ case em::PolicyData::ENTERPRISE_MANAGED: |
+ return MANAGEMENT_MODE_ENTERPRISE_MANAGED; |
+ |
+ case em::PolicyData::CONSUMER_MANAGED: |
+ return MANAGEMENT_MODE_CONSUMER_MANAGED; |
+ |
+ default: |
+ NOTREACHED(); |
+ return MANAGEMENT_MODE_LOCAL_OWNER; |
+ } |
+ } |
+ |
+ return policy_data.has_request_token() ? |
+ MANAGEMENT_MODE_ENTERPRISE_MANAGED : MANAGEMENT_MODE_LOCAL_OWNER; |
+} |
+ |
} // namespace policy |