summaryrefslogtreecommitdiffstats
path: root/chromeos
diff options
context:
space:
mode:
authorpneubeck@chromium.org <pneubeck@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-07-22 21:15:58 +0000
committerpneubeck@chromium.org <pneubeck@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-07-22 21:15:58 +0000
commit37b6e97ee202fd412dea53d2716ea5a46b92f940 (patch)
treeed6ad4fbf527ff3de96006fe557f4cf6a348c776 /chromeos
parentcfb6396ab5f0c8e26fb99e189423ff6793aa5475 (diff)
downloadchromium_src-37b6e97ee202fd412dea53d2716ea5a46b92f940.zip
chromium_src-37b6e97ee202fd412dea53d2716ea5a46b92f940.tar.gz
chromium_src-37b6e97ee202fd412dea53d2716ea5a46b92f940.tar.bz2
Add function ManagedNetworkConfigurationHandler::FindPolicyByGUID.
This is required to switch network policy application from deprecated NetworkLibrary to ManagedNetworkConfigurationHandler. BUG=261152 TBR=stevenjb@chromium.org Review URL: https://chromiumcodereview.appspot.com/19722014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@212970 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chromeos')
-rw-r--r--chromeos/network/managed_network_configuration_handler.cc30
-rw-r--r--chromeos/network/managed_network_configuration_handler.h8
2 files changed, 38 insertions, 0 deletions
diff --git a/chromeos/network/managed_network_configuration_handler.cc b/chromeos/network/managed_network_configuration_handler.cc
index d0ade7d..ace7060 100644
--- a/chromeos/network/managed_network_configuration_handler.cc
+++ b/chromeos/network/managed_network_configuration_handler.cc
@@ -694,6 +694,36 @@ void ManagedNetworkConfigurationHandler::OnProfileAdded(
applicator->Run();
}
+const base::DictionaryValue*
+ManagedNetworkConfigurationHandler::FindPolicyByGUID(
+ const std::string userhash,
+ const std::string& guid,
+ onc::ONCSource* onc_source) const {
+ *onc_source = onc::ONC_SOURCE_NONE;
+
+ if (!userhash.empty()) {
+ const GuidToPolicyMap* user_policies = GetPoliciesForUser(userhash);
+ if (user_policies) {
+ GuidToPolicyMap::const_iterator found = user_policies->find(guid);
+ if (found != user_policies->end()) {
+ *onc_source = onc::ONC_SOURCE_USER_POLICY;
+ return found->second;
+ }
+ }
+ }
+
+ const GuidToPolicyMap* device_policies = GetPoliciesForUser(std::string());
+ if (device_policies) {
+ GuidToPolicyMap::const_iterator found = device_policies->find(guid);
+ if (found != device_policies->end()) {
+ *onc_source = onc::ONC_SOURCE_DEVICE_POLICY;
+ return found->second;
+ }
+ }
+
+ return NULL;
+}
+
void ManagedNetworkConfigurationHandler::OnProfileRemoved(
const NetworkProfile& profile) {
// Nothing to do in this case.
diff --git a/chromeos/network/managed_network_configuration_handler.h b/chromeos/network/managed_network_configuration_handler.h
index fb8fc73..0ac1e6e 100644
--- a/chromeos/network/managed_network_configuration_handler.h
+++ b/chromeos/network/managed_network_configuration_handler.h
@@ -124,6 +124,14 @@ class CHROMEOS_EXPORT ManagedNetworkConfigurationHandler
const std::string& userhash,
const base::ListValue& network_configs_onc);
+ // Returns the user policy for user |userhash| or device policy, which has
+ // |guid|. If |userhash| is empty, only looks for a device policy. If such
+ // doesn't exist, returns NULL. Sets |onc_source| accordingly.
+ const base::DictionaryValue* FindPolicyByGUID(
+ const std::string userhash,
+ const std::string& guid,
+ onc::ONCSource* onc_source) const;
+
// NetworkProfileObserver overrides
virtual void OnProfileAdded(const NetworkProfile& profile) OVERRIDE;
virtual void OnProfileRemoved(const NetworkProfile& profile) OVERRIDE;