Estoy integrando el SSO de Discourse, pero estoy teniendo un problema: el usuario que se crea obtiene privilegios de administrador, aunque el payload del SSO indique explícitamente que no debería.
Estoy en la última beta: 2.8.0.beta6 [ f3273bd43e ].
Aquí hay un ejemplo:
Acabo de probar con omar+member9@306.dev, que es un dominio completamente diferente y no está en DISCOURSE_DEVELOPER_EMAILS, pero el problema persiste: el usuario obtuvo acceso de administrador.
La clave de API que estoy utilizando para firmar el SSO pertenece a un administrador; ¿afecta esto algo?
Acabo de integrar SSO en un sitio de Discourse existente y estoy experimentando este comportamiento.
El sitio se ejecuta en Docker (repositorio discourse_docker).
Ingresé al contenedor y accedí a la base de datos de PostgreSQL; el usuario tiene la bandera de administrador establecida en false en la base de datos, por lo que no se está actualizando mediante el método “make_developer_admin”.
Para ayudar en la depuración de DiscourseConnect, puedes habilitar la configuración del sitio verbose_discourse_connect_logging. Al activar esta configuración, aparecerán diagnósticos detallados en YOURSITE.com/logs. Asegúrate de marcar la casilla warnings en la parte inferior de YOURSITE.com/logs.
Parece ser algún tipo de error de filtrado al usar la API de ActiveRecord. Registré las consultas y no veo el userid en el filtro where, por lo que parece que está obteniendo los datos de notificaciones de forma global.
Supongo que lo mismo está ocurriendo con los foros y los temas; de alguna manera está ignorando el filtro de userid y obteniendo todo.
Parece que user.notifications no está aplicando el filtro. He agregado manualmente una condición where en el código y se solucionó la visualización de las notificaciones en el modal, pero en la página de detalles se utiliza una ruta de código diferente, por lo que aún se muestra todo. ¿Cuál es la solución real?
Comencé un nuevo contenedor de Docker desde cero y moví los activos/los datos, eso solucionó el problema.
Reconstruir el contenedor existente no ayudó.