Fixing ConfigurationValidator to not crash.

This commit is contained in:
stephb9959
2021-10-30 15:30:49 -07:00
parent a8079b04c8
commit dc326ea00e
21 changed files with 619 additions and 73 deletions

View File

@@ -73,14 +73,15 @@ namespace OpenWifi{
if (!NewEntity.from_json(Obj)) {
return BadRequest(RESTAPI::Errors::InvalidJSONDocument);
}
NewEntity.info.modified = NewEntity.info.created = std::time(nullptr);
for(auto &i:NewEntity.info.notes)
i.createdBy = UserInfo_.userinfo.email;
if(!ProvObjects::CreateObjectInfo(Obj,UserInfo_.userinfo,NewEntity.info)) {
return BadRequest(RESTAPI::Errors::NameMustBeSet);
}
// When creating an entity, it cannot have any relations other that parent, notes, name, description. Everything else
// must be conveyed through PUT.
NewEntity.info.id = (UUID==EntityDB::RootUUID()) ? UUID : MicroService::instance().CreateUUID() ;
NewEntity.info.id = (UUID==EntityDB::RootUUID()) ? UUID : MicroService::instance().CreateUUID();
if(UUID==EntityDB::RootUUID()) {
NewEntity.parent="";
} else if(NewEntity.parent.empty() || !DB_.Exists("id",NewEntity.parent)) {
@@ -143,6 +144,10 @@ namespace OpenWifi{
return BadRequest(RESTAPI::Errors::InvalidJSONDocument);
}
if(!UpdateObjectInfo(RawObject, UserInfo_.userinfo, Existing.info)) {
return BadRequest(RESTAPI::Errors::NameMustBeSet);
}
std::string NewManagementPolicy;
Types::UUIDvec_t NewConfiguration;
bool MovingConfiguration=false,
@@ -172,8 +177,6 @@ namespace OpenWifi{
Existing.sourceIP = NewEntity.sourceIP;
}
UpdateObjectInfo(RawObject, UserInfo_.userinfo, Existing.info);
std::string Error;
if(!StorageService()->Validate(Parameters_,Error)) {
return BadRequest(Error);