Adding validation for DeviceRules.

This commit is contained in:
stephb9959
2022-05-13 08:14:40 -07:00
parent 8f78aec565
commit 5228066b65
6 changed files with 62 additions and 21 deletions

View File

@@ -155,12 +155,16 @@ namespace OpenWifi{
return BadRequest(RESTAPI::Errors::SerialNumberExists);
}
const auto & Obj = ParsedBody_;
const auto & RawObject = ParsedBody_;
ProvObjects::InventoryTag NewObject;
if (!NewObject.from_json(Obj)) {
if (!NewObject.from_json(RawObject)) {
return BadRequest(RESTAPI::Errors::InvalidJSONDocument);
}
if((RawObject->has("deviceRules") && !ValidDeviceRules(NewObject.deviceRules,*this))) {
return;
}
if(!Provisioning::DeviceClass::Validate(NewObject.devClass.c_str())) {
return BadRequest(RESTAPI::Errors::InvalidDeviceClass);
}
@@ -169,7 +173,7 @@ namespace OpenWifi{
NewObject.devClass = Provisioning::DeviceClass::ANY;
}
if(!ProvObjects::CreateObjectInfo(Obj, UserInfo_.userinfo, NewObject.info)) {
if(!ProvObjects::CreateObjectInfo(RawObject, UserInfo_.userinfo, NewObject.info)) {
return BadRequest( RESTAPI::Errors::NameMustBeSet);
}
@@ -285,6 +289,10 @@ namespace OpenWifi{
return BadRequest(RESTAPI::Errors::InvalidJSONDocument);
}
if((RawObject->has("deviceRules") && !ValidDeviceRules(NewObject.deviceRules,*this))) {
return;
}
if(!Provisioning::DeviceClass::Validate(NewObject.devClass.c_str())) {
return BadRequest(RESTAPI::Errors::InvalidDeviceClass);
}