Hola,
¿Hay alguna forma de ejecutar scripts en publicaciones limitado solo a administradores?
He intentado configurarlo antes y mi sitio web se bloqueó en PuTTY.
Que tengas un buen miércoles
Olle
Hola,
¿Hay alguna forma de ejecutar scripts en publicaciones limitado solo a administradores?
He intentado configurarlo antes y mi sitio web se bloqueó en PuTTY.
Que tengas un buen miércoles
Olle
Hubo una publicación sobre este asunto hace un par de años, pero tengo la esperanza de que haya una manera de hacer esto.
https://meta.discourse.org/t/adding-a-javascript-in-a-post/130019/3
Olle
@Olle11 podría ayudar si detallas más lo que intentas lograr.
No hay forma de permitir esto de forma ad hoc a través del Composer, pero dependiendo de tu caso de uso, podría haber soluciones alternativas.
Por ejemplo, el plugin Poll ejecuta esencialmente JavaScript en una publicación (entre otras cosas).
Espero ejecutar un script a través de HTML o React que pueda mostrar widgets en vivo en las publicaciones principales.
Por ejemplo, un widget que muestre el clima en vivo en una ciudad a través de un script de widget HTML.
¿Es utilizable el plugin Poll para este caso?
Saludos cordiales
Olle
No, solo estaba usando eso como ejemplo. Echa un vistazo a su código fuente.
Podrías intentar usar un iFrame si puedes alojar el JavaScript en otro lugar.
Si deseas una integración más estrecha, deberás considerar usar EmberJS.
Esta es probablemente la respuesta más accesible si quieres contenido en la publicación en lugar de, por ejemplo, un banner en la parte superior.
Por ejemplo, tomé uno de los elementos de la página principal de CodePen (ya que está en nuestros allowed_iframes) y lo incrusté a continuación:
Parece que el script que necesito no permite iframes debido a X-FRAME-Options: DENY.
Quizás algo como esto para permitir que un script se ejecute en Discourse @merefield @supermathie?
App.yml:
DISCOURSE_ALLOW_UNSAFE_HTML: true
Configuración de Nginx para CSP:
add_header Content-Security-Policy “script-src ‘self’ ‘https://webadress.com’ ‘unsafe-inline’ ‘unsafe-eval’;”;
Estoy intentando añadir la configuración de Nginx pero ni ‘unsafe-inline’ ni https aparecen en la CSP al comprobar con curl. ‘unsafe-eval’ se añade a través de administración.
Editar: NO ES SEGURO
Eliminar las protecciones que Discourse tiene para evitar esto es una muy mala idea.
Por eso todos están tratando de dirigirte hacia las formas sugeridas de hacer esto.
Deberías usar un tema o un componente de tema para añadir scripts a las páginas.
¿Puedo usar un tema o un componente de tema para agregar scripts a una publicación?
¿Cómo puedo incluir ‘unsafe-inline’ en la CSP para que el script funcione?
Podrías. El script en sí tendría que estar fuera de la publicación, o quizás podrías hacer que decore aspectos específicos de las publicaciones.
Es difícil saber exactamente lo que quieres sin detalles.
Es una mala idea y no deberías hacerlo.
Con respecto a CSP y lo que agregué a app.yml, eliminaré unsafe_html: true, el volumen de nginx y la configuración de nginx para CSP del sitio porque no es seguro.
Quizás un componente temático funcione hmm
¿Qué script quieres ejecutar exactamente?
¿Dónde quieres ejecutarlo?
¿Debe ser en una publicación en particular o en algún otro lugar de la página? ¿Qué parámetros deben pasarse? ¿Es diferente en cada publicación? ¿Categoría?
Es posible que funcione el iframe. Necesito actualizar el CSP y unsafe_html para que el sitio web sea seguro porque CSP y las otras soluciones que intenté no son seguras
Gracias por tu aporte. El Iframe podría funcionar al menos por ahora hasta que encuentre una mejor solución.
Al mirar el script, no puedes ejecutarlo globalmente. Requiere cargarse en el lugar con opciones.
Hice un TC simple: GitHub - Arkshine/discourse-tradingview-chart
Para facilitar el cambio de las opciones, puedes copiarlas y pegarlas directamente desde el sitio dentro de [wrap]..[/wrap].
Por defecto, fuerza la relación de aspecto a 16/9, ocupará todo el ancho y la altura es automática. El script permite especificar un ancho/alto, también funcionará.
Sugeriría usar la opción show_popup_button: true. Te proporcionará una forma de ver el gráfico a pantalla completa en una nueva ventana.

Añadí dos opciones:
Lo siento, pero un simple
no es suficiente para transmitir . . .
Tío. Eso es increíble.