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 "chrome/browser/policy/cloud/user_cloud_policy_manager.h"
      6 
      7 #include "base/bind.h"
      8 #include "base/bind_helpers.h"
      9 #include "chrome/browser/policy/cloud/cloud_policy_constants.h"
     10 #include "chrome/browser/policy/cloud/cloud_policy_service.h"
     11 #include "chrome/browser/policy/cloud/user_cloud_policy_manager_factory.h"
     12 #include "chrome/browser/policy/cloud/user_cloud_policy_store.h"
     13 #include "chrome/browser/policy/policy_types.h"
     14 #include "chrome/common/pref_names.h"
     15 
     16 namespace em = enterprise_management;
     17 
     18 namespace policy {
     19 
     20 UserCloudPolicyManager::UserCloudPolicyManager(
     21     Profile* profile,
     22     scoped_ptr<UserCloudPolicyStore> store)
     23     : CloudPolicyManager(
     24           PolicyNamespaceKey(GetChromeUserPolicyType(), std::string()),
     25           store.get()),
     26       profile_(profile),
     27       store_(store.Pass()) {
     28   UserCloudPolicyManagerFactory::GetInstance()->Register(profile_, this);
     29 }
     30 
     31 UserCloudPolicyManager::~UserCloudPolicyManager() {
     32   UserCloudPolicyManagerFactory::GetInstance()->Unregister(profile_, this);
     33 }
     34 
     35 void UserCloudPolicyManager::Connect(
     36     PrefService* local_state, scoped_ptr<CloudPolicyClient> client) {
     37   core()->Connect(client.Pass());
     38   StartRefreshScheduler();
     39   core()->TrackRefreshDelayPref(local_state, prefs::kUserPolicyRefreshRate);
     40 }
     41 
     42 // static
     43 scoped_ptr<CloudPolicyClient>
     44 UserCloudPolicyManager::CreateCloudPolicyClient(
     45     DeviceManagementService* device_management_service) {
     46   return make_scoped_ptr(
     47       new CloudPolicyClient(std::string(), std::string(),
     48                             USER_AFFILIATION_NONE,
     49                             NULL, device_management_service)).Pass();
     50 }
     51 
     52 void UserCloudPolicyManager::DisconnectAndRemovePolicy() {
     53   core()->Disconnect();
     54   store_->Clear();
     55 }
     56 
     57 bool UserCloudPolicyManager::IsClientRegistered() const {
     58   return client() && client()->is_registered();
     59 }
     60 
     61 }  // namespace policy
     62