Fatale avec un lien vers un document inexistant et Accès restreint protégeant les documents #5341

Open
opened 5 days ago by RealET · 6 comments
RealET commented 5 days ago

Bonjour,

L'erreur : Erreur d’exécution ../prive/objets/contenu/article.html | File ecrire\inc\autoriser.php Line 232 : autoriser_dist(): Return value must be of type bool, null returned

Méthode pour reproduire :

  • SPIP 4.1 git
    • accès restreint 5.0.0 git avec config : "interdire la lecture"
  • créer un article avec un lien [Doc inexistant->doc36]

Ça provoque une fatale.

Résolution :

  • ligne 154, remplacer $a = null; par $a = false;
  • après la ligne 222 : $a = $f($faire, $type, $id, $qui, $opt); rajouter : $a = ($a ?? false);
Bonjour, L'erreur : Erreur d’exécution ../prive/objets/contenu/article.html | File ecrire\inc\autoriser.php Line 232 : autoriser_dist(): Return value must be of type bool, null returned Méthode pour reproduire : * SPIP 4.1 git * + accès restreint 5.0.0 git avec config : "interdire la lecture" * créer un article avec un lien `[Doc inexistant->doc36]` Ça provoque une fatale. Résolution : * ligne 154, remplacer `$a = null;` par `$a = false;` * après la ligne 222 : `$a = $f($faire, $type, $id, $qui, $opt);` rajouter : `$a = ($a ?? false);`
b_b commented 5 days ago
Owner

Peut-être en lien avec #5290 ?

Peut-être en lien avec #5290 ?
b_b added the
bug
label 5 days ago
b_b added this to the 4.1 milestone 5 days ago
b_b added the
APIs
label 5 days ago
Owner

Ah bah j’ai pas reporté en 4.1 2d11dc051e déjà… ça commence bien

Ah bah j’ai pas reporté en 4.1 2d11dc051e1d1 déjà… ça commence bien
Poster

Peut-être en lien avec #5290 ?

Effectivement, c'est en lien.

J'ai trouvé la ligne à changer dans accès restreint pour renvoyer false et pas null.

À noter qu'accès restreint renvoie aussi parfois 'htacess' au lieu d'un bool...

> Peut-être en lien avec #5290 ? Effectivement, c'est en lien. J'ai trouvé la ligne à changer dans accès restreint pour renvoyer false et pas null. À noter qu'accès restreint renvoie aussi parfois 'htacess' au lieu d'un bool...
Owner

ah oui c'est vrai il y a un truc comme ça. Ça va être chaud ça...

ah oui c'est vrai il y a un truc comme ça. Ça va être chaud ça...
Owner

Je me demande si du coup on pourrait pas faire quelque chose comme ça :


$a = $f($faire, $type, $id, $qui, $opt);
if (!is_bool($a)) {
     trigger_error(sprintf("Function %s should returns a boolean instead of %s (casts as boolean). This will trigger fatal error in future versions.", $f, gettype($a)), \E_USER_DEPRECATED);
     $a = (bool) $a;
}
Je me demande si du coup on pourrait pas faire quelque chose comme ça : ```php $a = $f($faire, $type, $id, $qui, $opt); if (!is_bool($a)) { trigger_error(sprintf("Function %s should returns a boolean instead of %s (casts as boolean). This will trigger fatal error in future versions.", $f, gettype($a)), \E_USER_DEPRECATED); $a = (bool) $a; } ```
Owner

Ah mais c’est pas dans "Accès Restreint" directement, c’est dans Médias l’autorisation qui fait cela !

Ah mais c’est pas dans "Accès Restreint" directement, c’est dans Médias l’autorisation qui fait cela ! - autoriser_document_voir_dist : https://git.spip.net/spip/medias/src/branch/master/medias_autoriser.php#L287
Sign in to join this conversation.
No Milestone
No project
No Assignees
4 Participants
Notifications
Due Date

No due date set.

Dependencies

This issue currently doesn't have any dependencies.

Loading…
There is no content yet.