Acabo de encontrarme con esto en un foro que administro. Pasos para reproducir:
Crear un nuevo grupo como administrador
Establecer la visibilidad en “dueños del grupo”
Crear el grupo
Volver a /g
El grupo no aparecerá
Si revisas la consola usando Group.find_by(name: <nombre>), devuelve el resultado correctamente. Cambiar la visibilidad a “Dueños del grupo y personal” sí muestra el grupo.
A menos que esto sea intencional, mi suposición es que incluso los administradores deberían ver los grupos con este nivel de visibilidad (aunque no los moderadores).
No noté este comportamiento hasta que actualicé a 2.4.0.beta2 ayer.
No puedo reproducir esto, @justin. Lo intenté localmente y en una instancia alojada en DO, y también probé creando un grupo desde dos cuentas de administrador diferentes. En todos los casos, los administradores ven todos los grupos.
Estrano: tendré que intentarlo en una instalación nueva. Definitivamente puedo reproducirlo en una instancia de producción que tengo. Intentaré actualizarla y veré qué pasa.
Lo probé en una instalación nueva y obtuve los mismos resultados que tú, @pmusaraj. Supongo que se debe a un complemento que estoy usando. Si descubro qué pasa, te lo haré saber.
¿Tú también usas complementos? ¿Cuáles (centrándote en los que Discourse no crea ni incluye)… o estás diciendo que esto es una nueva regresión @justin?
Hola, acabo de cambiar la visibilidad de un grupo de “Propietarios del grupo” a “Propietarios y miembros del grupo” y se volvió a hacer visible. Me pregunto si hay algo extraño en el código de la configuración de un grupo cuando su visibilidad está restringida a “Propietarios del grupo”.
@outofthebox ¿Por casualidad tienes instalado el plugin de chat Babble? Parece que es una regresión relacionada con eso después de que lo eliminé de mi instancia. Desinstalar ese plugin y reconstruirlo restauró la visibilidad del grupo.
Buen hallazgo, @justin. Revisé rápidamente el código fuente de Babble y parece haber un conflicto con mis actualizaciones de grupos en el núcleo. Babble agrega una regla codificada para visibility_level: 4, que ahora entra en conflicto con el grupo owners en el núcleo.
Esperemos que @gdpelican pueda tener tiempo para echar un vistazo.
Ok, así que he profundizado un poco más en este problema.
Parece que babble había asignado su propio visibility_level para su uso interno y tomó la constante sin usar siguiente (4).
Hace unas semanas, el código principal de Discourse también agregó un nuevo visibility_level y tomó la constante sin usar siguiente, que también era 4. Esto provocó un uso duplicado de esta constante.
Por lo tanto, la solución constaría de dos partes:
Cambiar el visibility_level utilizado por babble. Eso sería sencillo. Si quisiéramos hacerlo de manera realmente ordenada, cada plugin registraría su propio BASE_VISIBILITY_LEVEL para evitar conflictos futuros. Pero por ahora, podríamos simplemente elegir uno (por ejemplo, 1001).
Cambiar los grupos con visibility_level 4 a la nueva constante, pero solo los grupos que eran utilizados por babble.
¿Seleccionaría esta consulta los grupos correctos, @gdpelican?
UPDATE groups
SET visibility_level = 1001
WHERE id IN (
SELECT g.id
FROM topics t
LEFT JOIN topic_allowed_groups tag ON tag.topic_id = t.id
LEFT JOIN groups g ON g.id = tag.group_id
WHERE t.archetype='chat');
Hola, lo siento. Lo revisaré en los próximos días, pero tu esquema general de la solución es perfecto. La parte complicada será el backport, así que lo estudiaré más de cerca pronto.