SettingsController
El POST de settings detrás del MISMO gate compartido que el GET (Tarea 6): `[StartSession, RequireScopeMiddleware('milpa.admin')]` vía {@see GatedAdminController::runGated()}, más {@see CsrfGuard} compuesta DESPUÉS como `$extraMiddleware` — un CSRF ausente o que no matchea nunca llega a bindear ni a persistir, porque el guard corre y lanza ANTES de que el `$tip` de abajo se ejecute. El `$tip` bindea el body contra el MISMO `FormDefinition` que el GET ({@see SettingsFormSchema::definition()}) vía `SchemaForm::bind()`. Válido → dispatch GOBERNADO (P5.4, ADR#11): {@see ToolProjector::dispatch()} corre SIEMPRE por `ToolRegistry::call()` — policy/rate-limit/audit/contención — nunca invoke directo; el ceremonial de P5.3a murió con este cambio. Success → PRG (303 See Other a `/milpa/admin/settings`, para que un refresh re-GET-ee en vez de reenviar el POST). Redisplay (bind inválido, o el registry rechazó/falló) → el MISMO shell ({@see ShellRenderHandler}, Tarea 6) con los valores Y errores de LA SUMISIÓN — nunca la store, nunca una mezcla —, el `?FormBanner` seguro que el proyector arma cuando aplica, y una cookie/hidden CSRF frescos (mismo idioma que el GET: un token nuevo por render).
SettingsController::__construct()
public function __construct(Milpa\Interfaces\Di\DIContainerInterface $container):Parameters
| Name | Type | Description |
|---|---|---|
| $container | Milpa\Interfaces\Di\DIContainerInterface |
SettingsController::show()
public function show(Symfony\Component\HttpFoundation\Request $request, array $params = []): Milpa\Http\Symfony\HttpResponsePinta el formulario de configuración con un token CSRF nuevo por petición.
Parameters
| Name | Type | Description |
|---|---|---|
| $request | Symfony\Component\HttpFoundation\Request | |
| $params | array |
SettingsController::save()
public function save(Symfony\Component\HttpFoundation\Request $request, array $params = []): Milpa\Http\Symfony\HttpResponseGuarda la configuración. Éxito → PRG; sumisión inválida → se repinta con sus errores.
Parameters
| Name | Type | Description |
|---|---|---|
| $request | Symfony\Component\HttpFoundation\Request | |
| $params | array |