Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6062)

Unified Diff: chrome/browser/ui/webui/policy_ui_handler.cc

Issue 2606773002: Setup Chromad user policy plumbing (Closed)
Patch Set: CrOS compilation fix Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/webui/policy_ui_handler.cc
diff --git a/chrome/browser/ui/webui/policy_ui_handler.cc b/chrome/browser/ui/webui/policy_ui_handler.cc
index d9bb3ccd01874c90768d230acfea3fcf460cabf9..78e641b39f089de47ec458a3fb5b6af2b1618830 100644
--- a/chrome/browser/ui/webui/policy_ui_handler.cc
+++ b/chrome/browser/ui/webui/policy_ui_handler.cc
@@ -59,6 +59,7 @@
#include "chrome/browser/chromeos/policy/device_active_directory_policy_manager.h"
#include "chrome/browser/chromeos/policy/device_cloud_policy_store_chromeos.h"
#include "chrome/browser/chromeos/policy/device_local_account_policy_service.h"
+#include "chrome/browser/chromeos/policy/user_active_directory_policy_manager.h"
#include "chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.h"
#include "chrome/browser/chromeos/policy/user_cloud_policy_manager_factory_chromeos.h"
#include "chrome/browser/chromeos/settings/install_attributes.h"
@@ -250,16 +251,16 @@ class CloudPolicyCoreStatusProvider
};
// A cloud policy status provider for user policy.
-class UserPolicyStatusProvider : public CloudPolicyCoreStatusProvider {
+class UserCloudPolicyStatusProvider : public CloudPolicyCoreStatusProvider {
public:
- explicit UserPolicyStatusProvider(policy::CloudPolicyCore* core);
- ~UserPolicyStatusProvider() override;
+ explicit UserCloudPolicyStatusProvider(policy::CloudPolicyCore* core);
+ ~UserCloudPolicyStatusProvider() override;
// CloudPolicyCoreStatusProvider implementation.
void GetStatus(base::DictionaryValue* dict) override;
private:
- DISALLOW_COPY_AND_ASSIGN(UserPolicyStatusProvider);
+ DISALLOW_COPY_AND_ASSIGN(UserCloudPolicyStatusProvider);
};
#if defined(OS_CHROMEOS)
@@ -308,14 +309,13 @@ class DeviceLocalAccountPolicyStatusProvider
DISALLOW_COPY_AND_ASSIGN(DeviceLocalAccountPolicyStatusProvider);
};
-// Provides status for DeviceActiveDirectoryPolicyManager.
-class DeviceActiveDirectoryPolicyStatusProvider
+// Provides status for any Active Directory policy manager.
emaxx 2016/12/28 19:09:20 nit: Add comment to explain explicitly that it's b
Thiemo Nagel 2016/12/29 15:08:28 Actually it's "either/or" not "both". I've update
+class ActiveDirectoryPolicyStatusProvider
: public PolicyStatusProvider,
public policy::CloudPolicyStore::Observer {
public:
- explicit DeviceActiveDirectoryPolicyStatusProvider(
- policy::DeviceActiveDirectoryPolicyManager* manager);
- ~DeviceActiveDirectoryPolicyStatusProvider() override;
+ explicit ActiveDirectoryPolicyStatusProvider(policy::CloudPolicyStore* store);
+ ~ActiveDirectoryPolicyStatusProvider() override;
// PolicyStatusProvider implementation.
void GetStatus(base::DictionaryValue* dict) override;
@@ -327,7 +327,7 @@ class DeviceActiveDirectoryPolicyStatusProvider
private:
policy::CloudPolicyStore* store_;
- DISALLOW_COPY_AND_ASSIGN(DeviceActiveDirectoryPolicyStatusProvider);
+ DISALLOW_COPY_AND_ASSIGN(ActiveDirectoryPolicyStatusProvider);
};
#endif
@@ -369,14 +369,13 @@ void CloudPolicyCoreStatusProvider::OnStoreError(
NotifyStatusChange();
}
-UserPolicyStatusProvider::UserPolicyStatusProvider(
- policy::CloudPolicyCore* core) : CloudPolicyCoreStatusProvider(core) {
-}
+UserCloudPolicyStatusProvider::UserCloudPolicyStatusProvider(
+ policy::CloudPolicyCore* core)
+ : CloudPolicyCoreStatusProvider(core) {}
-UserPolicyStatusProvider::~UserPolicyStatusProvider() {
-}
+UserCloudPolicyStatusProvider::~UserCloudPolicyStatusProvider() {}
-void UserPolicyStatusProvider::GetStatus(base::DictionaryValue* dict) {
+void UserCloudPolicyStatusProvider::GetStatus(base::DictionaryValue* dict) {
if (!core_->store()->is_managed())
return;
GetStatusFromCore(core_, dict);
@@ -440,33 +439,31 @@ void DeviceLocalAccountPolicyStatusProvider::OnDeviceLocalAccountsChanged() {
NotifyStatusChange();
}
-DeviceActiveDirectoryPolicyStatusProvider::
- DeviceActiveDirectoryPolicyStatusProvider(
- policy::DeviceActiveDirectoryPolicyManager* manager)
- : store_(manager->store()) {
+ActiveDirectoryPolicyStatusProvider::ActiveDirectoryPolicyStatusProvider(
+ policy::CloudPolicyStore* store)
+ : store_(store) {
store_->AddObserver(this);
}
-DeviceActiveDirectoryPolicyStatusProvider::
- ~DeviceActiveDirectoryPolicyStatusProvider() {
+ActiveDirectoryPolicyStatusProvider::~ActiveDirectoryPolicyStatusProvider() {
store_->RemoveObserver(this);
}
// TODO(tnagel): Provide more details and/or remove unused fields from UI. See
// https://crbug.com/664747.
-void DeviceActiveDirectoryPolicyStatusProvider::GetStatus(
+void ActiveDirectoryPolicyStatusProvider::GetStatus(
base::DictionaryValue* dict) {
base::string16 status =
policy::FormatStoreStatus(store_->status(), store_->validation_status());
dict->SetString("status", status);
}
-void DeviceActiveDirectoryPolicyStatusProvider::OnStoreLoaded(
+void ActiveDirectoryPolicyStatusProvider::OnStoreLoaded(
policy::CloudPolicyStore* store) {
NotifyStatusChange();
}
-void DeviceActiveDirectoryPolicyStatusProvider::OnStoreError(
+void ActiveDirectoryPolicyStatusProvider::OnStoreError(
policy::CloudPolicyStore* store) {
NotifyStatusChange();
}
@@ -528,8 +525,8 @@ void PolicyUIHandler::RegisterMessages() {
if (connector->IsEnterpriseManaged()) {
if (connector->GetDeviceActiveDirectoryPolicyManager()) {
device_status_provider_ =
- base::MakeUnique<DeviceActiveDirectoryPolicyStatusProvider>(
- connector->GetDeviceActiveDirectoryPolicyManager());
+ base::MakeUnique<ActiveDirectoryPolicyStatusProvider>(
+ connector->GetDeviceActiveDirectoryPolicyManager()->store());
} else {
device_status_provider_ =
base::MakeUnique<DevicePolicyStatusProvider>(connector);
@@ -548,13 +545,22 @@ void PolicyUIHandler::RegisterMessages() {
local_account_service);
}
} else {
- policy::UserCloudPolicyManagerChromeOS* user_cloud_policy_manager =
- policy::UserCloudPolicyManagerFactoryChromeOS::GetForProfile(
- Profile::FromWebUI(web_ui()));
- if (user_cloud_policy_manager) {
- user_status_provider_ =
- base::MakeUnique<UserPolicyStatusProvider>(
- user_cloud_policy_manager->core());
+ Profile* profile = Profile::FromWebUI(web_ui());
+ policy::UserCloudPolicyManagerChromeOS* user_cloud_policy =
+ policy::UserCloudPolicyManagerFactoryChromeOS::
+ GetCloudPolicyManagerForProfile(profile);
+ if (user_cloud_policy) {
+ user_status_provider_ = base::MakeUnique<UserCloudPolicyStatusProvider>(
+ user_cloud_policy->core());
+ } else {
+ policy::UserActiveDirectoryPolicyManager* active_directory_policy =
+ policy::UserCloudPolicyManagerFactoryChromeOS::
+ GetActiveDirectoryPolicyManagerForProfile(profile);
+ if (active_directory_policy) {
emaxx 2016/12/28 19:09:20 Could we transform this into a more readable seque
Thiemo Nagel 2016/12/29 15:08:28 Done. (Also moved to separate CL.)
+ user_status_provider_ =
+ base::MakeUnique<ActiveDirectoryPolicyStatusProvider>(
+ active_directory_policy->store());
+ }
}
}
#else
@@ -562,7 +568,7 @@ void PolicyUIHandler::RegisterMessages() {
policy::UserCloudPolicyManagerFactory::GetForBrowserContext(
web_ui()->GetWebContents()->GetBrowserContext());
if (user_cloud_policy_manager) {
- user_status_provider_ = base::MakeUnique<UserPolicyStatusProvider>(
+ user_status_provider_ = base::MakeUnique<UserCloudPolicyStatusProvider>(
user_cloud_policy_manager->core());
}
#endif

Powered by Google App Engine
This is Rietveld 408576698