stephb9959
2023-01-30 13:48:19 -08:00
parent ce1818c93c
commit ffb7dd890e
6 changed files with 152 additions and 4 deletions

View File

@@ -3,6 +3,7 @@
//
#include "RESTAPI_systemSecret_handler.h"
#include <SecretStore.h>
namespace OpenWifi {
@@ -10,6 +11,35 @@ namespace OpenWifi {
if(!Internal_ && UserInfo_.userinfo.userRole!=SecurityObjects::ROOT) {
return UnAuthorized(RESTAPI::Errors::ACCESS_DENIED);
}
if(GetBoolParameter("all")) {
auto Store = SecretStore()->Store();
Poco::JSON::Array Entries;
Poco::JSON::Object List;
for(const auto &[Key,Value]:Store) {
Poco::JSON::Object E;
E.set("key",Key);
E.set("value",Value);
Entries.add(E);
}
List.set("secrets",Entries);
return ReturnObject(List);
}
auto Key = GetBinding("secret");
if(Key.empty()) {
return BadRequest(RESTAPI::Errors::MissingOrInvalidParameters);
}
std::string Value;
if(SecretStore()->Get(Key,Value,"")) {
Poco::JSON::Object Answer;
Answer.set("key", Key);
Answer.set("value", Value);
return ReturnObject(Answer);
}
return NotFound();
}
void RESTAPI_systemSecret_handler::DoDelete() {
@@ -17,6 +47,14 @@ namespace OpenWifi {
return UnAuthorized(RESTAPI::Errors::ACCESS_DENIED);
}
auto Key = GetBinding("secret");
if(Key.empty()) {
return BadRequest(RESTAPI::Errors::MissingOrInvalidParameters);
}
SecretStore()->Remove(Key);
return OK();
}
void RESTAPI_systemSecret_handler::DoPut() {
@@ -24,6 +62,17 @@ namespace OpenWifi {
return UnAuthorized(RESTAPI::Errors::ACCESS_DENIED);
}
auto Key = GetBinding("secret");
auto Value = GetParameter("value","_______no_value_____");
if(Key.empty() || Value == "_______no_value_____") {
return BadRequest(RESTAPI::Errors::MissingOrInvalidParameters);
}
SecretStore()->Set(Key,Value);
Poco::JSON::Object Answer;
Answer.set("key", Key);
Answer.set("value", Value);
return ReturnObject(Answer);
}
} // OpenWifi