Estoy ejecutando un foro con Discourse 2.6.0beta3 y creo que he encontrado un error.
Intento agregar usuarios anónimos a un grupo llamado anons para poder restringir sus publicaciones en ciertas categorías específicas. He configurado el grupo anons para que agregue usuarios automáticamente según el dominio de correo anon.mydomain.
Cuando ingreso al modo anónimo, descubro que mi cuenta anónima no se agrega al grupo. Sin embargo, si hago clic en el botón Guardar cambios en /g/anons/manage/membership, mi cuenta anónima sí se agrega a este grupo. Solo quiero que el usuario anónimo se agregue a este grupo al entrar en modo anónimo, sin necesidad de que yo haga clic.
He buscado información sobre este error, pero no he encontrado nada útil. ¡Gracias por su tiempo!
Puedo reproducir lo que estás encontrando cuando un usuario entra en modo anónimo. Para que el usuario se agregue automáticamente a un grupo basado en el dominio del correo electrónico anónimo, tengo que ir a la página de administración del grupo anónimo y guardar la configuración.
No estoy seguro de que se espere que agregar usuarios anónimos a un grupo basado en el dominio del correo electrónico anónimo funcione. Sin embargo, veo cómo sería útil tener a todos los usuarios anónimos en un grupo. La estrategia de agregar usuarios anónimos a un grupo basado en su dominio de correo electrónico se ha sugerido varias veces en Meta. Una alternativa sería agregar una configuración de grupo de modo anónimo que agregue automáticamente a todos los usuarios anónimos a un grupo elegido.
Veamos si esta es una funcionalidad que Discourse desea admitir antes de decidir si se trata de un error.
Creo que sería arriesgado confiar en el correo electrónico anónimo para esta funcionalidad. Podríamos considerar crear otro grupo automático para usuarios anónimos y agregarlos allí automáticamente.
Sin embargo, no lo considero un error, por lo que lo estoy recategorizando.
Hola, este tema es relevante para un problema que estoy teniendo en un foro que estoy ayudando a configurar/administrar. Un poco de contexto: el foro requiere que las personas paguen para unirse como usuarios que pueden publicar. También queremos que los miembros de pago con un cierto nivel de confianza puedan publicar de forma anónima cambiando al modo anónimo. Además, queremos que todos puedan leer el contenido (excepto, por supuesto, el contenido exclusivo del personal).
Según mi entendimiento, los usuarios anónimos forman parte automáticamente del grupo de usuarios “todos”. Si quisiéramos permitir que todo el mundo publique en el foro, no habría problema de que los anónimos no pudieran publicar. Sin embargo, como es un foro de pago, hemos configurado el grupo de usuarios “todos” como solo lectura, para que el mundo pueda leer pero no publicar.
Aún queremos que los usuarios con el nivel de confianza requerido puedan publicar de forma anónima. La solución prevista era configurar un grupo de usuarios anónimos con permiso para escribir publicaciones y agregar personas según el dominio de correo electrónico anónimo que usamos en el foro. Sin embargo, el aspecto automático de la adición no está funcionando: un administrador necesita ir al grupo de usuarios anónimos y guardar los cambios para que los anónimos sean realmente agregados. Eso es bastante molesto y arruina el flujo que nos gustaría, que es que un miembro de pago con el nivel de confianza requerido pueda cambiar al modo anónimo y publicar libremente.
Entiendo que la adición automática de usuarios anónimos a un grupo es una función que quizás se está considerando como una adición a Discourse, pero aún no se ha implementado. Asumiendo que es así, ¿hay alguna otra forma razonable en la que podría configurar mi Discourse para obtener el resultado que deseo, o debo esperar a que los dioses de Discourse agreguen esta función? Gracias
necesitamos esto para darles los permisos correctos para que puedan publicar cualquier cosa.
tal vez otros podrían usar esta solución o alguien podría encontrar la manera de crear un plugin más oficial o fusionar el código.
funciona en combinación con la configuración de membresía automática de grupo por correo electrónico (que no funcionó por sí sola en nuestra experiencia):
Para que conste, “resolví” este problema a nivel de base de datos en un foro que administro. Úsalo solo si no puedes conseguir que funcionen otras soluciones de nivel superior (¿ha habido algún progreso en esto, o se debería marcar alguna respuesta existente como “resuelto”?). Aquí tienes el código de PostgreSQL:
create or replace function anon_insert_copy_groups_to_anon_user()
RETURNS TRIGGER
LANGUAGE PLPGSQL
AS $$
declare
anon_user_id integer = new.user_id;
master_user_id integer = new.master_user_id;
active boolean = new.active;
created_at timestamp = new.created_at;
updated_at timestamp = new.updated_at;
BEGIN
insert into group_users
(group_id, user_id, created_at, updated_at, owner, notification_level, first_unread_pm_at)
select group_users.group_id, anon_user_id , current_timestamp, current_timestamp, false, 3 as notification_level, current_timestamp
from group_users
where group_users.user_id=master_user_id
and group_users.group_id not in (select group_id from group_users where group_users.user_id=anon_user_id)
and group_users.group_id not in (1, 2, 3); -- ¡excluir administradores, moderadores y personal!
return new;
end;
$$;
-- Crear el disparador
CREATE TRIGGER anon_insert_trigger
AFTER INSERT ON anonymous_users
FOR EACH ROW
EXECUTE FUNCTION anon_insert_copy_groups_to_anon_user();