Base de travail V7.8 reprise du répertoire de travail

Commit technique : reproduit à l'identique l'état non commité de la copie
de travail (sécurisation V7.8, CSP à nonce, Session, migration des droits)
afin que le travail d'ergonomie qui suit soit isolable.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
PTA
2026-08-10 16:32:10 +02:00
parent 57bd8da5c8
commit 66cc8c8ade
30 changed files with 1015 additions and 141 deletions

View File

@@ -21,18 +21,14 @@ final class JsonResponse
});
set_exception_handler(static function (\Throwable $exception): void {
error_log(sprintf(
'[PTA API] %s: %s in %s:%d',
get_class($exception),
$exception->getMessage(),
$exception->getFile(),
$exception->getLine()
));
// Security::reportThrowable journalise systématiquement le détail
// côté serveur et ne le renvoie au client que si PTA_DEBUG est
// explicitement activé. Par défaut, rien ne fuit.
$payload = ['error' => 'Une erreur serveur est survenue.'];
if ((getenv('PTA_DEBUG') ?: '1') !== '0') {
if (Security::debugEnabled()) {
$payload['details'] = $exception->getMessage();
}
Security::reportThrowable($exception, 'Erreur API.');
self::send(500, $payload);
});
@@ -42,6 +38,8 @@ final class JsonResponse
{
if (!headers_sent()) {
header('Content-Type: application/json; charset=utf-8');
header('X-Content-Type-Options: nosniff');
header('Cache-Control: no-store');
}
http_response_code($status);