Olá a todos, novo usuário do Discourse, primeiro post, por favor sejam gentis!
Alguém pode me dizer se a seguinte solução é possível?
Cenário:
- Ter um site Drupal
- Ter conteúdo no site Drupal que exige autenticação de usuário (“conteúdo restrito do Drupal”)
- Ter SSO entre Drupal e Discourse
Problema:
- Um usuário do Discourse que cola um link para “conteúdo restrito do Drupal” em uma postagem recebe a mensagem 403: “Desculpe, não foi possível gerar uma prévia para esta página da web, pois o servidor web retornou um código de erro 403. Em vez de uma prévia, apenas um link aparecerá em sua postagem.”
Solução desejada:
- Um usuário do Discourse que cola um link para conteúdo restrito recebe a prévia automática se tiver acesso ao conteúdo
Há uma ambiguidade no que você disse até agora. Você quer dizer que, ao visualizar uma postagem do Discourse com um link do Drupal, a prévia do onebox deve depender de:
- do acesso do visualizador ao Drupal; ou
- do acesso do criador ao Drupal
De qualquer forma, será mais fácil resolver se você puder transformar isso em uma questão de acesso ao Discourse. É possível obter atribuição automática de grupos no Discourse com base na função no Drupal; isso deve ser bastante simples com o módulo Drupal Discourse SSO.
Você também pode precisar de alguma lógica de acesso personalizada no lado do Drupal para garantir que o crawler de prévia do onebox possa acessar conteúdo restrito.
Se você deseja mostrar conteúdo para alguns espectadores, mas não para outros, suspeito que precisará fazer com que o conteúdo utilize algum tipo de script. Seria muito mais fácil se o conteúdo dependesse do criador, e não do espectador.
Obrigado pela resposta rápida. Eu estava pensando que a prévia dependeria do acesso do criador do tópico/comentário no Discourse, e não do visualizador do Discourse.
Eu estava imaginando a prévia como um instantâneo que é criado e vinculado ao post como HTML estático, não como um widget dinâmico — eu nem tinha considerado essa possibilidade!
Se eu entendi corretamente: isso seria possível com personalização (via script) no lado do Discourse e/ou lógica de acesso personalizada no lado do Drupal?
É possível configurar o Drupal para que a pré-visualização fique antes do login/muro de pagamento?
Se as propriedades meta da publicação do Drupal forem acessíveis, o oneboxing deve funcionar corretamente.
No produto Discourse hospedado (não empresarial), parece que o onebox não é realmente personalizável de uma forma que dê suporte a isso.
Acho que tornar pelo menos os metadados publicamente acessíveis terá que ser a maneira de resolver isso.
Obrigado a ambos pelas respostas.