Ich betreibe ein Forum mit Discourse 2.6.0beta3 und habe vermutlich einen Fehler gefunden.
Ich versuche, anonyme Benutzer einer Gruppe namens anons hinzuzufügen, damit ich deren Beiträge in bestimmten Kategorien einschränken kann. Ich habe die Gruppe anons so konfiguriert, dass Benutzer automatisch hinzugefügt werden, wenn ihre E-Mail-Domain anon.mydomain lautet.
Im anonymen Modus stelle ich jedoch fest, dass mein anonymes Konto nicht zur Gruppe hinzugefügt wird. Wenn ich jedoch auf der Seite /g/anons/manage/membership auf die Schaltfläche „Änderung speichern“ klicke, wird mein anonymes Konto der Gruppe hinzugefügt. Ich möchte, dass anonyme Benutzer automatisch beim Betreten des anonymen Modus dieser Gruppe hinzugefügt werden, ohne dass ich klicken muss.
Ich habe nach diesem Fehler gesucht, aber keine hilfreichen Informationen gefunden. Vielen Dank für eure Aufmerksamkeit!
Ich kann das von Ihnen beschriebene Problem reproduzieren, wenn ein Benutzer den anonymen Modus aktiviert. Um Benutzer basierend auf der anonymen E-Mail-Domain automatisch einer Gruppe hinzuzufügen, muss ich zur Verwaltungsseite der anonymen Gruppe navigieren und die Einstellungen speichern.
Ich bin mir nicht sicher, ob das automatische Hinzufügen von anonymen Benutzern zu einer Gruppe basierend auf der anonymen E-Mail-Domain erwartet wird. Es wäre jedoch nützlich, alle anonymen Benutzer in einer Gruppe zu haben. Der Ansatz, anonyme Benutzer basierend auf ihrer E-Mail-Domain einer Gruppe hinzuzufügen, wurde auf Meta bereits einige Male vorgeschlagen. Eine alternative Möglichkeit wäre die Einführung einer Einstellung „Gruppe für anonymen Modus“, die alle anonymen Benutzer automatisch einer ausgewählten Gruppe hinzufügt.
Lassen Sie uns zunächst prüfen, ob Discourse diese Funktionalität unterstützen möchte, bevor wir entscheiden, ob es sich um einen Fehler handelt.
Ich denke, es wäre riskant, sich für diese Funktion auf anonyme E-Mails zu verlassen. Wir könnten stattdessen eine weitere automatische Gruppe für anonyme Benutzer einrichten und diese automatisch dort hinzufügen.
Ich betrachte dies jedoch nicht als Fehler, daher kategorisiere ich es neu.
Hallo, dieses Thema ist relevant für ein Problem, das ich auf einem Forum habe, bei dem ich beim Einrichten/Administrieren helfe. Ein wenig Kontext: Das Forum verlangt eine Zahlung, um sich als Nutzer anzumelden, der Beiträge verfassen kann. Wir möchten außerdem, dass bezahlte Mitglieder mit einem bestimmten Vertrauenslevel anonym posten können, indem sie in den anonymen Modus wechseln. Außerdem soll jeder den Inhalt lesen können (außer natürlich staff-exklusiven Bereichen).
Meines Wissens nach gehören anonyme Nutzer automatisch zur Benutzergruppe „Alle“. Wenn wir der gesamten Welt erlauben wollten, auf dem Forum zu posten, gäbe es kein Problem damit, dass Anonyme nicht posten können. Da es sich jedoch um ein kostenpflichtiges Forum handelt, haben wir die Benutzergruppe „Alle“ auf „nur lesen“ gesetzt, sodass die Welt zwar lesen, aber nicht posten kann.
Dennoch möchten wir, dass Nutzer mit dem erforderlichen Vertrauenslevel anonym posten können. Die vorgesehene Lösung bestand darin, eine anonyme Benutzergruppe mit Schreibrechten für Beiträge einzurichten und Nutzer basierend auf der anonymen E-Mail-Domain, die wir auf dem Forum verwenden, hinzuzufügen. Der automatische Aspekt des Hinzufügens funktioniert jedoch nicht – ein Administrator muss zur Gruppe der anonymen Nutzer gehen und Änderungen speichern, damit Anonyme tatsächlich hinzugefügt werden. Das ist ziemlich lästig und stört den gewünschten Ablauf, bei dem bezahlte Mitglieder mit dem erforderlichen Vertrauenslevel in den anonymen Modus wechseln und einfach anonym posten können sollen.
Ich habe den Eindruck, dass das automatische Hinzufügen von Anonymen zu einer Gruppe eine Funktion ist, die möglicherweise als Erweiterung für Discourse erwogen wird, aber noch nicht implementiert wurde. Falls dem so ist, gibt es dann eine andere vernünftige Möglichkeit, mein Discourse so zu konfigurieren, dass ich das gewünschte Ergebnis erhalte, oder muss ich warten, bis die Discourse-Götter hoffentlich diese Funktion hinzufügen? Vielen Dank
Ich habe ein Plugin geschrieben, um alle Gruppen eines Benutzers auf seinen Schatten zu kopieren, wenn der Schatten erstellt wird:
Haftungsausschluss: Ich bin völlig neu in Ruby, und obwohl es auf meiner Installation funktioniert, habe ich keine Ahnung, ob es woanders funktioniert.
Wir brauchen das, um ihnen die richtigen Berechtigungen zu geben, damit sie alles posten können.
Vielleicht könnten andere diese Lösung nutzen oder jemand könnte herausfinden, wie man ein offizielleres Plugin erstellt oder den Code integriert.
Es funktioniert in Kombination mit der Einstellung für automatische Gruppenmitgliedschaft per E-Mail (die unserer Erfahrung nach allein nicht funktionierte):
FWIW, ich habe dieses Problem auf Datenbankebene “gelöst”. Verwenden Sie es nur, wenn Sie keine anderen, höherwertigen Lösungen zum Laufen bringen können (gab es hier Fortschritte, oder sollte eine bestehende Antwort als “gelöst” markiert werden?). Hier ist der PostgreSQL-Code:
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); -- exlude admins, moderators and staff!
return new;
end;
$$;
-- Create the trigger
CREATE TRIGGER anon_insert_trigger
AFTER INSERT ON anonymous_users
FOR EACH ROW
EXECUTE FUNCTION anon_insert_copy_groups_to_anon_user();