Hello les gens et Cédric surtout,
on a un site de magazine, avec beaucoup d'accès restreint, beaucoup de rubriques configurées, des milliers d'articles, etc. Et des documents joints doivent absolument être pour les abonnées uniquement, comme des émissions en mp3 par exemple, donc sur ce site la protection des documents est activée.
Tout cela génère des requêtes très (TRÈS) lourdes, on le sait bien.
Sauf que… normalement, nous contrôlons précisément quand sont faits ces tests car on a activé la constante AR_TOUJOURS_TOUT_VOIR. Ce qui signifie qu'absolument AUCUNE boucle ne génère ces requêtes lourdes. Normalement pour les documents, le test ne devrait se faire que quand on cherche à accéder au vrai document orginal, quand on va sur son URL dans IMG/, car là ça va dans l'action d'accès au doc et ça teste l'autorisation. Et ça c'est ok, car il n'y a pas beaucoup de demande d'accès aux documents originaux.
Sauf que… on s'est aperçu que tu avais mis un appel à l'autorisation, et donc un lancement des requêtes énormes, au tout début de la fonction de génération des URL de documents. Du coup ça lance des requêtes énormes pour CHAQUE simple lien de document dans les pages, dès qu'on a #URL_DOCUMENT, et ça yen a des paquets sur chaque page !
À cause de cela, le site a complètement planté (slow queries en folie etc) après avoir dépassé un seuil de rubriques restreintes ajoutées. En virant ce test (que chez nous donc pour l'instant) tout est revenu comme il faut.
Alors questions :
- Pourquoi tester l'autorisation de voir un document pour juste générer son URL ? On s'en fiche si on a le droit de le voir ou pas, ça change rien que le document a bien une #URL_DOCUMENT, c'est quand on demande à y accéder pour de vrai que ça suffit de tester si on a le droit.
- Est-ce que ça peut se virer ? Ou le rendre configurable (ne serait-ce qu'avec une constante) ?