OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CHROMEOS_NETWORK_POLICY_UTIL_H_ | 5 #ifndef CHROMEOS_NETWORK_POLICY_UTIL_H_ |
6 #define CHROMEOS_NETWORK_POLICY_UTIL_H_ | 6 #define CHROMEOS_NETWORK_POLICY_UTIL_H_ |
7 | 7 |
8 #include <map> | 8 #include <map> |
9 #include <string> | 9 #include <string> |
10 | 10 |
11 #include "base/memory/scoped_ptr.h" | 11 #include "base/memory/scoped_ptr.h" |
12 | 12 |
13 namespace base { | 13 namespace base { |
14 class DictionaryValue; | 14 class DictionaryValue; |
15 } | 15 } |
16 | 16 |
17 namespace chromeos { | 17 namespace chromeos { |
18 | 18 |
19 struct NetworkProfile; | 19 struct NetworkProfile; |
20 | 20 |
21 namespace policy_util { | 21 namespace policy_util { |
22 | 22 |
23 typedef std::map<std::string, const base::DictionaryValue*> GuidToPolicyMap; | 23 typedef std::map<std::string, const base::DictionaryValue*> GuidToPolicyMap; |
24 | 24 |
| 25 // Creates a managed ONC dictionary from the given arguments. Depending on the |
| 26 // profile type, the policies are assumed to come from the user or device policy |
| 27 // and and |user_settings| to be the user's non-shared or shared settings. |
| 28 // Each of the arguments can be NULL. |
| 29 // TODO(pneubeck): Add documentation of the returned format, see |
| 30 // https://crbug.com/408990 . |
| 31 scoped_ptr<base::DictionaryValue> CreateManagedONC( |
| 32 const base::DictionaryValue* global_policy, |
| 33 const base::DictionaryValue* network_policy, |
| 34 const base::DictionaryValue* user_settings, |
| 35 const base::DictionaryValue* active_settings, |
| 36 const NetworkProfile* profile); |
| 37 |
| 38 // Adds properties to |shill_properties_to_update|, which are enforced on an |
| 39 // unamaged network by the global config |global_network_policy| of the policy. |
| 40 // |shill_dictionary| are the network's current properties read from Shill. |
| 41 void SetShillPropertiesForGlobalPolicy( |
| 42 const base::DictionaryValue& shill_dictionary, |
| 43 const base::DictionaryValue& global_network_policy, |
| 44 base::DictionaryValue* shill_properties_to_update); |
| 45 |
25 // Creates a Shill property dictionary from the given arguments. The resulting | 46 // Creates a Shill property dictionary from the given arguments. The resulting |
26 // dictionary will be sent to Shill by the caller. Depending on the profile | 47 // dictionary will be sent to Shill by the caller. Depending on the profile |
27 // type, |policy| is interpreted as the user or device policy and | 48 // type, |network_policy| is interpreted as the user or device policy and |
28 // |user_settings| as the user or shared settings. |policy| or |user_settings| | 49 // |user_settings| as the user or shared settings. |network_policy| or |
29 // can be NULL, but not both. | 50 // |user_settings| can be NULL, but not both. |
30 scoped_ptr<base::DictionaryValue> CreateShillConfiguration( | 51 scoped_ptr<base::DictionaryValue> CreateShillConfiguration( |
31 const NetworkProfile& profile, | 52 const NetworkProfile& profile, |
32 const std::string& guid, | 53 const std::string& guid, |
33 const base::DictionaryValue* policy, | 54 const base::DictionaryValue* global_policy, |
| 55 const base::DictionaryValue* network_policy, |
34 const base::DictionaryValue* user_settings); | 56 const base::DictionaryValue* user_settings); |
35 | 57 |
36 // Returns the policy from |policies| matching |actual_network|, if any exists. | 58 // Returns the policy from |policies| matching |actual_network|, if any exists. |
37 // Returns NULL otherwise. |actual_network| must be part of a ONC | 59 // Returns NULL otherwise. |actual_network| must be part of a ONC |
38 // NetworkConfiguration. | 60 // NetworkConfiguration. |
39 const base::DictionaryValue* FindMatchingPolicy( | 61 const base::DictionaryValue* FindMatchingPolicy( |
40 const GuidToPolicyMap& policies, | 62 const GuidToPolicyMap& policies, |
41 const base::DictionaryValue& actual_network); | 63 const base::DictionaryValue& actual_network); |
42 | 64 |
43 } // namespace policy_util | 65 } // namespace policy_util |
44 | 66 |
45 } // namespace chromeos | 67 } // namespace chromeos |
46 | 68 |
47 #endif // CHROMEOS_NETWORK_POLICY_UTIL_H_ | 69 #endif // CHROMEOS_NETWORK_POLICY_UTIL_H_ |
OLD | NEW |