Ciao a tutti, nuovo utente di Discourse, primo post, siate gentili!
Qualcuno può dirmi se la seguente soluzione è possibile?
Scenario:
- Avere un sito Drupal
- Avere contenuti sul sito Drupal che richiedono l’autenticazione dell’utente (“contenuti Drupal riservati”)
- Avere un SSO tra Drupal e Discourse
Problema:
- Un utente di Discourse che incolla un link a “contenuti Drupal riservati” in un post riceve il messaggio 403: “Spiacenti, non siamo riusciti a generare un’anteprima per questa pagina web, perché il server web ha restituito un codice di errore 403. Invece di un’anteprima, nel post apparirà solo un link.”
Soluzione desiderata:
- Un utente di Discourse che incolla un link a contenuti riservati ottiene l’anteprima automatica se ha accesso ai contenuti
C’è un’ambiguità in quanto hai detto finora. Vuoi dire che, quando si visualizza un post di Discourse con un link a Drupal, l’anteprima onebox dovrebbe dipendere da:
- i permessi Drupal dell’utente che visualizza; oppure
- i permessi Drupal di chi ha creato il post
In ogni caso, sarà più semplice risolvere il problema se lo si tratta come una questione di accesso a Discourse. È possibile ottenere l’assegnazione automatica dei gruppi di Discourse in base al ruolo in Drupal; questo dovrebbe essere abbastanza semplice da realizzare con il modulo Drupal Discourse SSO.
Potresti anche scoprire di aver bisogno di una logica di accesso personalizzata sul lato Drupal per garantire che il crawler dell’anteprima onebox possa accedere ai contenuti riservati.
Se vuoi mostrare contenuti ad alcuni spettatori ma non ad altri, sospetto che dovrai far sì che i contenuti utilizzino uno script di qualche tipo. Sarebbe molto più semplice se i contenuti dipendessero dal creatore e non dallo spettatore.
Grazie per la rapida risposta. Pensavo che l’anteprima dipendesse dai permessi del creatore del topic/commento su Discourse, non da quelli di chi visualizza su Discourse.
Immaginavo l’anteprima come uno snapshot generato e associato al post come HTML statico, non come un widget dinamico: non avevo nemmeno considerato questa possibilità!
Se ho capito bene: questo sarebbe possibile tramite personalizzazione (mediante script) sul lato Discourse e/o logica di accesso personalizzata sul lato Drupal?
È possibile configurare Drupal in modo che l’anteprima sia visibile prima del login o del paywall?
Se le proprietà meta del post di Drupal sono accessibili, il oneboxing dovrebbe funzionare correttamente.
Nel prodotto Discourse ospitato (non enterprise), sembra che onebox non sia davvero personalizzabile in modo da supportare questo.
Penso che rendere almeno i metadati pubblicamente accessibili sarà la strada da percorrere per risolvere la questione.
Grazie a entrambi per le risposte