Le filtre |sinon_interdire_acces ne prend pas bien en compte le $statut sur l'espace privé
https://git.spip.net/spip/spip/blob/master/ecrire/inc/filtres.php#L5213
// Si on est dans l'espace privé, on génère du 403 Forbidden par defaut ou du 404
if (test_espace_prive()) {
if (!$statut || !in_array($statut, [404, 403])) {
$statut = 403;
}
http_response_code(403);
$echec = charger_fonction('403', 'exec');
$echec($message);
}
Sur l'espace privé $statut
n'est pas du tout pris en compte en faite ! Soit on considère que le statut est toujours forcé en 403
sur l'espace privé, auquel cas ça devrait donner ça :
// Si on est dans l'espace privé, on génère du 403 Forbidden
if (test_espace_prive()) {
http_response_code(403);
$echec = charger_fonction('403', 'exec');
$echec($message);
}
Soit on autorise de fournir statut particulier, et ça devrait donner un truc comme ça (mais je vois pas trop l’intérêt !)
// Si on est dans l'espace privé, on génère du 403 Forbidden par defaut ou du 404
if (test_espace_prive()) {
if (!$statut || !in_array($statut, [404, 403])) {
$statut = 403;
}
http_response_code($statut);
$echec = charger_fonction($statut, 'exec');
$echec($message);
}
A mon avis sur l'espace privé |sinon_interdire_acces
devrait toujours générer un 403 (pour rester logique avec le nom du filtre)