Configuré un servidor de Discourse para un cliente y les permití crear cuentas de prueba, sabiendo que eventualmente quedarían obsoletas una vez implementado el SSO. Lo configuré todo, personalicé mi tema y escribí descripciones para todas las categorías usando mi cuenta de administrador A.
Una vez configurado DiscourseConnect (como única opción de registro), inicié sesión con mi cuenta de administrador desde el otro sistema y otorgué derechos de administrador a esa cuenta B. A partir de ese momento, realizaría cualquier acción bajo la cuenta B, ya que ya no podía iniciar sesión como A.
Luego, me encontré con el botón “Suplantar” y sentí curiosidad. Parecía que no tenía que eliminar la cuenta A si podía suplantarla para editar descripciones de categorías, preguntas frecuentes, etc. Así que usé B para suplantar a A y realicé varios cambios para probarlo; todo funcionó perfectamente.
Hasta que me pregunté si también podría suplantar la cuenta del bot del foro. Así que, mientras seguía suplantando a A (quien resultó ser un administrador), decidí suplantar a C. Funcionó, excelente, así que con diligencia cerré sesión y seguí con mi día.
Ahora, cuando inicio sesión como B, ya no puedo suplantar a A ni a C (otros usuarios están bien). El lugar donde debería aparecer el botón solo muestra el mensaje: “Los administradores y moderadores no pueden ser eliminados”.
Los registros indican que “B suplantó a A” y “A suplantó a C”.
No estaba seguro de si esto merece un informe de error, ya que actualmente no tengo forma de reproducir mis pasos, o si existe una manera sencilla de solucionarlo.
¿Es posible iniciar sesión en la cuenta Admin A utilizando /users/admin-login para acceder mediante correo electrónico? ¿Eso podría ayudarte a desatrar el nudo?
¿Cómo puedo saber en qué versión estoy a través de la interfaz? En el Panel de control dice que la última actualización fue el 3 de agosto, pero no veo ningún número de versión.
¡No sabía que existía esa ruta! Sin duda, eso resuelve el problema de eludir DiscourseConnect, aunque no he logrado desenredar el nudo, por así decirlo. Sin embargo, aparecen los botones de “Suplantar” para el usuario A, así que asumo que actualmente no están suplantando a nadie.
Puedes ver el código fuente. No es difícil de encontrar.
Visita /u/admin-login y cambia el correo electrónico de la cuenta de administrador por uno que permita iniciar sesión mediante SSO. También podrías cambiar la dirección desde la consola de Rails.
Simplemente asumí por error que, si estabas ocultando deliberadamente la información a los administradores, entonces no sería pública. Que sea la 2.8.0.beta4.
En cuanto a tu segunda sugerencia, no quiero hacer eso, ya que el usuario A no tiene un equivalente en mi otro sistema; sin embargo, cualquier usuario podría tener potencialmente una cuenta en el foro.
Eso es todo lo que tengo en mi pequeño barril de conocimientos. No estaba seguro de si los administradores podían hacerse pasar por otros administradores (pensé que solo los desarrolladores podían). ¿Eliminaste al Administrador B de esta lista?
Espero que alguien con conocimientos más profundos pueda aportar algo más relevante.
Te sugiero agregar tu Cuenta B a la sección de Desarrolladores en el archivo app.yml, como mencionó @JammyDodger.
## TODO: Lista de correos electrónicos separados por comas que se convertirán en administradores y desarrolladores
## en el registro inicial, ejemplo 'usuario1@ejemplo.com,usuario2@ejemplo.com'
DISCOURSE_DEVELOPER_EMAILS: 'gavin@truecode.co.za'