Je gère un forum avec Discourse 2.6.0beta3 et je pense avoir découvert un bug.
J’essaie d’ajouter des utilisateurs anonymes à un groupe nommé anons, afin de pouvoir restreindre leurs publications dans certaines catégories spécifiques. J’ai configuré le groupe anons pour ajouter automatiquement les utilisateurs en fonction du domaine de messagerie anon.mydomain.
Lorsque j’active le mode anonyme, je constate que mon compte anonyme n’est pas ajouté au groupe. Cependant, si je clique sur le bouton Enregistrer les modifications dans /g/anons/manage/membership, mon compte anonyme est bien ajouté à ce groupe. Je souhaite simplement que l’utilisateur anonyme soit ajouté à ce groupe dès l’entrée en mode anonyme, sans que j’aie à cliquer.
J’ai recherché ce bug mais je n’ai trouvé aucune information utile. Merci d’avoir pris le temps de lire mon message !
Je peux reproduire ce que vous constatez lorsqu’un utilisateur entre en mode anonyme. Pour qu’un utilisateur soit automatiquement ajouté à un groupe en fonction du domaine de l’e-mail anonyme, je dois accéder à la page de gestion du groupe anonyme et enregistrer les paramètres.
Je ne suis pas certain que l’ajout d’utilisateurs anonymes à un groupe en fonction du domaine de leur e-mail anonyme soit censé fonctionner. Je vois cependant en quoi il serait utile de regrouper tous les utilisateurs anonymes dans un même groupe. L’approche consistant à ajouter des utilisateurs anonymes à un groupe en fonction de leur domaine e-mail a été suggérée à plusieurs reprises sur Meta. Une approche alternative consisterait à ajouter un paramètre « groupe en mode anonyme » qui ajouterait automatiquement tous les utilisateurs anonymes à un groupe choisi.
Voyons si Discourse souhaite prendre en charge cette fonctionnalité avant de décider s’il s’agit d’un bug.
Je pense qu’il serait risqué de s’appuyer sur l’email anonyme pour cette fonctionnalité. Je pense que nous pourrions envisager de créer un autre groupe automatique pour les utilisateurs anonymes et de les y ajouter automatiquement.
Je ne considère pas cela comme un bug, je le reclasse donc.
Bonjour, ce sujet concerne un problème que je rencontre sur un forum que j’aide à configurer et à administrer. Voici un peu de contexte : le forum exige que les utilisateurs paient pour s’inscrire et pouvoir publier. Nous souhaitons également que les membres payants ayant un certain niveau de confiance puissent publier de manière anonyme en passant en mode anonyme. Par ailleurs, nous voulons que tout le monde puisse lire le contenu (sauf bien sûr les sections réservées au personnel).
À ma connaissance, les utilisateurs anonymes font automatiquement partie du groupe « tout le monde ». Si nous souhaitions permettre à tout le monde de publier sur le forum, il n’y aurait pas de problème lié à l’incapacité des anonymes à publier. Cependant, comme il s’agit d’un forum payant, nous avons configuré le groupe « tout le monde » en lecture seule, afin que le public puisse lire mais pas publier.
Nous souhaitons tout de même que les utilisateurs disposant du niveau de confiance requis puissent publier de manière anonyme. La solution envisagée consistait à créer un groupe d’utilisateurs anonymes autorisé à publier des messages et à y ajouter automatiquement des personnes en fonction du domaine de messagerie anonyme utilisé par le forum. Toutefois, l’ajout automatique ne fonctionne pas : un administrateur doit se rendre dans le groupe des utilisateurs anonymes et enregistrer les modifications pour que les anonymes soient effectivement ajoutés. Cela est assez fastidieux et perturbe le flux que nous souhaitons mettre en place, à savoir qu’un membre payant ayant le niveau de confiance requis puisse passer en mode anonyme et publier librement.
J’ai compris que l’ajout automatique des utilisateurs anonymes à un groupe est une fonctionnalité peut-être en cours d’examen pour Discourse, mais qui n’a pas encore été implémentée. Si c’est bien le cas, existe-t-il une autre méthode raisonnable pour configurer mon instance Discourse afin d’obtenir le résultat souhaité, ou dois-je attendre que les dieux de Discourse ajoutent cette fonctionnalité ? Merci
nous en avons besoin pour leur donner les bonnes permissions afin qu’ils puissent publier n’importe quoi.
peut-être que d’autres pourraient utiliser cette solution ou que quelqu’un pourrait trouver comment créer un plugin plus officiel ou fusionner le code.
il fonctionne en combinaison avec le paramètre d’adhésion automatique au groupe par e-mail (qui n’a pas fonctionné seul d’après notre expérience) :
Pour information, j’ai « résolu » ce problème au niveau de la base de données sur un forum que j’administre. Utilisez-le uniquement si vous ne parvenez pas à obtenir d’autres solutions de plus haut niveau (y a-t-il eu des progrès à ce sujet, ou une réponse existante devrait-elle être marquée comme « résolue » ?). Voici le code 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); -- exclure les administrateurs, modérateurs et personnel !
return new;
end;
$$;
-- Créer le déclencheur
CREATE TRIGGER anon_insert_trigger
AFTER INSERT ON anonymous_users
FOR EACH ROW
EXECUTE FUNCTION anon_insert_copy_groups_to_anon_user();