fix: fiabiliser les portées et médias publics

This commit is contained in:
Alexandre NOEL 2026-09-15 18:39:00 +02:00
commit 4493357590
11 changed files with 121 additions and 6 deletions

View file

@ -87,6 +87,15 @@ try {
'L’historique des portées ne renseigne pas son action',
);
});
$test('Les médias publics restent accessibles au serveur web', function () use ($assert): void {
$security = file_get_contents(__DIR__ . '/../app/Services/SecurityService.php');
$images = file_get_contents(__DIR__ . '/../app/Services/ImageService.php');
$updates = file_get_contents(__DIR__ . '/../app/Services/UpdateService.php');
$assert(str_contains($security, "@chmod(\$root . '/data', 0710)"), 'La racine des données ne reste pas traversable');
$assert(str_contains($security, "hardenPublicTree(\$root . '/public/media')"), 'Les médias publics ne sont pas réparés');
$assert(str_contains($images, 'preparePublicDirectory($directory)'), 'Les nouveaux dossiers publics ne sont pas préparés');
$assert(str_contains($updates, "normalizePublicCodePermissions(\$root . '/public')"), 'Le code public n’est pas normalisé après mise à jour');
});
$test("Les voies d’administration des médicaments sont initialisées", function () use ($db, $assert): void {
$routes = $db
->query('SELECT accro FROM ref_med_administration ORDER BY id')
@ -97,7 +106,7 @@ try {
$db->query('PRAGMA table_info(animal_history)')->fetchAll(PDO::FETCH_ASSOC),
'name',
);
foreach (['type', 'label', 'details'] as $column) {
foreach (['action', 'field', 'old_value', 'new_value', 'meta', 'type', 'label', 'details', 'user_id'] as $column) {
$assert(in_array($column, $historyColumns, true), 'Colonne historique absente : ' . $column);
}
$assert(