OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 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_ONC_ONC_VALIDATOR_H_ | 5 #ifndef CHROMEOS_NETWORK_ONC_ONC_VALIDATOR_H_ |
6 #define CHROMEOS_NETWORK_ONC_ONC_VALIDATOR_H_ | 6 #define CHROMEOS_NETWORK_ONC_ONC_VALIDATOR_H_ |
7 | 7 |
| 8 #include <set> |
8 #include <string> | 9 #include <string> |
9 #include <vector> | 10 #include <vector> |
10 | 11 |
11 #include "base/memory/scoped_ptr.h" | 12 #include "base/memory/scoped_ptr.h" |
12 #include "chromeos/chromeos_export.h" | 13 #include "chromeos/chromeos_export.h" |
13 #include "chromeos/network/onc/onc_mapper.h" | 14 #include "chromeos/network/onc/onc_mapper.h" |
14 #include "components/onc/onc_constants.h" | 15 #include "components/onc/onc_constants.h" |
15 | 16 |
16 namespace base { | 17 namespace base { |
17 class DictionaryValue; | 18 class DictionaryValue; |
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
167 bool FieldExistsAndIsNotInRange(const base::DictionaryValue& object, | 168 bool FieldExistsAndIsNotInRange(const base::DictionaryValue& object, |
168 const std::string &field_name, | 169 const std::string &field_name, |
169 int lower_bound, | 170 int lower_bound, |
170 int upper_bound); | 171 int upper_bound); |
171 | 172 |
172 bool FieldExistsAndIsEmpty(const base::DictionaryValue& object, | 173 bool FieldExistsAndIsEmpty(const base::DictionaryValue& object, |
173 const std::string& field_name); | 174 const std::string& field_name); |
174 | 175 |
175 bool RequireField(const base::DictionaryValue& dict, const std::string& key); | 176 bool RequireField(const base::DictionaryValue& dict, const std::string& key); |
176 | 177 |
| 178 // Returns true if the GUID is unique or if the GUID is not a string |
| 179 // and false otherwise. The function also adds the GUID to a set in |
| 180 // order to identify duplicates. |
| 181 bool CheckGuidIsUniqueAndAddToSet(const base::DictionaryValue& dict, |
| 182 const std::string& kGUID, |
| 183 std::set<std::string> *guids); |
| 184 |
177 // Prohibit certificate patterns for device policy ONC so that an unmanaged | 185 // Prohibit certificate patterns for device policy ONC so that an unmanaged |
178 // user won't have a certificate presented for them involuntarily. | 186 // user won't have a certificate presented for them involuntarily. |
179 bool IsCertPatternInDevicePolicy(const std::string& cert_type); | 187 bool IsCertPatternInDevicePolicy(const std::string& cert_type); |
180 | 188 |
181 // Prohibit global network configuration in user ONC imports. | 189 // Prohibit global network configuration in user ONC imports. |
182 bool IsGlobalNetworkConfigInUserImport( | 190 bool IsGlobalNetworkConfigInUserImport( |
183 const base::DictionaryValue& onc_object); | 191 const base::DictionaryValue& onc_object); |
184 | 192 |
185 std::string MessageHeader(); | 193 std::string MessageHeader(); |
186 | 194 |
187 const bool error_on_unknown_field_; | 195 const bool error_on_unknown_field_; |
188 const bool error_on_wrong_recommended_; | 196 const bool error_on_wrong_recommended_; |
189 const bool error_on_missing_field_; | 197 const bool error_on_missing_field_; |
190 const bool managed_onc_; | 198 const bool managed_onc_; |
191 | 199 |
192 ::onc::ONCSource onc_source_; | 200 ::onc::ONCSource onc_source_; |
193 | 201 |
194 // The path of field names and indices to the current value. Indices | 202 // The path of field names and indices to the current value. Indices |
195 // are stored as strings in decimal notation. | 203 // are stored as strings in decimal notation. |
196 std::vector<std::string> path_; | 204 std::vector<std::string> path_; |
197 | 205 |
| 206 // Accumulates all network GUIDs during validation. Used to identify |
| 207 // duplicate GUIDs. |
| 208 std::set<std::string> network_guids_; |
| 209 |
| 210 // Accumulates all certificate GUIDs during validation. Used to identify |
| 211 // duplicate GUIDs. |
| 212 std::set<std::string> certificate_guids_; |
| 213 |
198 // Tracks if an error or warning occurred within validation initiated by | 214 // Tracks if an error or warning occurred within validation initiated by |
199 // function ValidateAndRepairObject. | 215 // function ValidateAndRepairObject. |
200 bool error_or_warning_found_; | 216 bool error_or_warning_found_; |
201 | 217 |
202 DISALLOW_COPY_AND_ASSIGN(Validator); | 218 DISALLOW_COPY_AND_ASSIGN(Validator); |
203 }; | 219 }; |
204 | 220 |
205 } // namespace onc | 221 } // namespace onc |
206 } // namespace chromeos | 222 } // namespace chromeos |
207 | 223 |
208 #endif // CHROMEOS_NETWORK_ONC_ONC_VALIDATOR_H_ | 224 #endif // CHROMEOS_NETWORK_ONC_ONC_VALIDATOR_H_ |
OLD | NEW |