only write access in API is enabled

This commit is contained in:
proddy
2021-04-06 18:39:03 +02:00
parent 5ef1c7e3bd
commit 7e196785d8
2 changed files with 14 additions and 9 deletions

View File

@@ -100,7 +100,16 @@ void WebDevicesService::device_data(AsyncWebServerRequest * request, JsonVariant
request->send(response);
}
// takes a command and its data value from a specific Device, from the Web
void WebDevicesService::write_value(AsyncWebServerRequest * request, JsonVariant & json) {
// only issue commands if the API is enabled
EMSESP::webSettingsService.read([&](WebSettings & settings) {
if (!settings.api_enabled) {
request->send(403); // forbidden error
return;
}
});
if (json.is<JsonObject>()) {
JsonObject dv = json["devicevalue"];
@@ -125,16 +134,14 @@ void WebDevicesService::write_value(AsyncWebServerRequest * request, JsonVariant
}
if (ok) {
AsyncWebServerResponse * response = request->beginResponse(200); // OK
request->send(response);
request->send(200);
}
return; // found device, quit
}
}
}
AsyncWebServerResponse * response = request->beginResponse(204); // no content error
request->send(response);
request->send(204); // no content error
}
}