Bonjour à tous, nouvel utilisateur de Discourse, premier post, soyez indulgents !
Quelqu’un peut-il me dire si la solution suivante est possible ?
Scénario :
- Avoir un site Drupal
- Avoir du contenu sur le site Drupal qui nécessite une authentification utilisateur (“contenu Drupal restreint”)
- Avoir un SSO entre Drupal et Discourse
Problème :
- Un utilisateur de Discourse qui colle un lien vers du “contenu Drupal restreint” dans un message reçoit le message 403 : “Désolé, nous n’avons pas pu générer un aperçu de cette page web, car le serveur web a renvoyé un code d’erreur 403. Au lieu d’un aperçu, seul un lien apparaîtra dans votre message.”
Solution souhaitée :
- Un utilisateur de Discourse qui colle un lien vers du contenu restreint obtient l’aperçu automatique s’il a accès au contenu
Il y a une ambiguïté dans ce que vous avez dit jusqu’ici. Voulez-vous dire que, lors de l’affichage d’un post Discourse contenant un lien Drupal, l’aperçu onebox doit dépendre :
- des droits d’accès Drupal du lecteur ; ou
- des droits d’accès Drupal du créateur
Dans les deux cas, il sera plus facile de résoudre le problème si vous pouvez en faire une question d’accès Discourse. Vous pouvez obtenir une attribution automatique des groupes Discourse basée sur le rôle Drupal, ce qui devrait être assez simple avec le module SSO Drupal-Discourse.
Vous constaterez peut-être aussi qu’il vous faut une logique d’accès personnalisée côté Drupal pour s’assurer que le robot d’exploration de l’aperçu onebox peut accéder au contenu restreint.
Si vous souhaitez afficher du contenu à certains spectateurs mais pas à d’autres, je soupçonne que vous devrez faire en sorte que le contenu utilise un script d’une certaine nature. Ce serait beaucoup plus simple si le contenu dépendait du créateur plutôt que du spectateur.
Merci pour cette réponse rapide. Je pensais que l’aperçu dépendrait des droits d’accès du créateur du sujet ou du commentaire sur Discourse, et non de ceux du lecteur sur Discourse.
Je concevais l’aperçu comme une capture statique générée et liée au post sous forme de HTML simple, et non comme un widget dynamique — je n’avais même pas envisagé cette possibilité !
Si j’ai bien compris : cela serait possible grâce à une personnalisation (via un script) côté Discourse, et/ou à une logique d’accès personnalisée côté Drupal ?
Est-il possible de configurer Drupal afin que l’aperçu soit accessible avant la page de connexion/paywall ?
Si les propriétés méta de l’article Drupal sont accessibles, l’encart (oneboxing) devrait fonctionner correctement.
Dans le produit Discourse hébergé (non entreprise), il semble que le onebox ne soit pas vraiment personnalisable d’une manière qui permettrait cela.
Je pense que rendre au moins les métadonnées accessibles au public sera la solution pour répondre à ce problème.
Merci à vous deux pour vos réponses.