Add typed serial settings operations
Route bounded admin mutations through the existing administration dispatcher, covering apply, lifecycle, persistence, authorization, and result tracking. Add the browser controls, automatic result refresh, regression coverage, and phase documentation.
This commit is contained in:
+15
-3
@@ -173,14 +173,14 @@ void web_cookie_auth_clear_counters(void)
|
||||
taskEXIT_CRITICAL(&s_lock);
|
||||
}
|
||||
|
||||
esp_err_t web_cookie_auth_require(httpd_req_t *r, bool mutation, bool upgrade,
|
||||
web_session_view_t *view, bool *allowed)
|
||||
static esp_err_t require(httpd_req_t *r, bool mutation, bool upgrade, size_t body_limit,
|
||||
web_session_view_t *view, bool *allowed)
|
||||
{
|
||||
char canonical[129] = {0}, token[65] = {0}, csrf[65] = {0};
|
||||
*allowed = false;
|
||||
memset(view, 0, sizeof(*view));
|
||||
if (!web_httpd_headers_valid(r) || !cookies_valid(r) || (!upgrade && strchr(r->uri, '?')) ||
|
||||
r->content_len || r->method != (mutation ? HTTP_POST : HTTP_GET))
|
||||
r->content_len > body_limit || r->method != (mutation ? HTTP_POST : HTTP_GET))
|
||||
return failure(r, "400 Bad Request", "invalid_request");
|
||||
if (!origin(r, mutation || upgrade, canonical))
|
||||
return failure(r, "403 Forbidden", "origin");
|
||||
@@ -212,6 +212,18 @@ esp_err_t web_cookie_auth_require(httpd_req_t *r, bool mutation, bool upgrade,
|
||||
return ESP_OK;
|
||||
}
|
||||
|
||||
esp_err_t web_cookie_auth_require(httpd_req_t *r, bool mutation, bool upgrade,
|
||||
web_session_view_t *view, bool *allowed)
|
||||
{
|
||||
return require(r, mutation, upgrade, 0, view, allowed);
|
||||
}
|
||||
|
||||
esp_err_t web_cookie_auth_require_json(httpd_req_t *r, size_t body_limit,
|
||||
web_session_view_t *view, bool *allowed)
|
||||
{
|
||||
return require(r, true, false, body_limit, view, allowed);
|
||||
}
|
||||
|
||||
static bool secret(char out[65])
|
||||
{
|
||||
uint8_t bytes[32];
|
||||
|
||||
Reference in New Issue
Block a user