Umgang mit gekündigten Mitgliedschaften

Ich verwende WordPress SSO, um Personen zu autorisieren, die eine Mitgliedschaft erworben haben (ich habe in WordPress eine benutzerdefinierte Logik implementiert, um festzustellen, ob sie Mitglieder sind). Alles funktioniert gut, aber ich frage mich, wie ich mit gekündigten Mitgliedern umgehen soll.

Offensichtlich bedeutet die Kündigung ihrer Mitgliedschaft, dass sie sich nicht mehr anmelden können. Leider muss ich sie manuell abmelden, falls sie weiterhin auf das Forum zugreifen und ihre Sitzung aktiv halten (alles manuell zu erledigen, war etwas, von dem ich dachte, ich hätte es hinter mir gelassen, als ich von meiner Facebook-Gruppe wechselte).

Aber ich habe noch zwei weitere Probleme:

  • Was passiert mit den Themen/Beiträgen, die sie im Forum gepostet haben? Diese sollen erhalten bleiben, was presumably bedeutet, dass ich den Benutzer nicht löschen kann.
  • Ich möchte sicherstellen, dass keine Digest-E-Mails an gekündigte Mitglieder gesendet werden. Discourse ist bis zu dem Zeitpunkt, an dem ich etwas tue, völlig ahnungslos darüber, dass das Konto gekündigt wurde. Was ist das? Unter der Voraussetzung, dass ich ihren Inhalt nicht entfernen möchte.

Wird alles durch die Benutzerunterdrückung abgedeckt, und gibt es bewährte Verfahren, wie man dies automatisieren kann? Ich gehe von einer Art benutzerdefiniertem Code aus, überprüfe aber, ob ich das vermeiden kann.

Vielen Dank.

Du kannst sie anonymisieren. So bleibt die Information erhalten, aber nicht der Benutzer.

Eine andere Möglichkeit ist die Implementierung einer benutzerdefinierten Logik, bei der statt eines neuen Benutzers eine neue Gruppe erstellt wird. Auf diese Weise sollte der Digest nur für diejenigen zugänglich sein, die Zugriff auf die Kategorie haben.

Eine weitere Option ist die Ausführung eines Cron-Jobs, der bei allen abgemeldeten Benutzern eine Abmeldung (oder Kontolöschung) erzwingt.

Vielen Dank, @marianord. Ich fürchte, ich verstehe den zweiten Absatz nicht ganz. Wenn Sie sagen „anstatt den Benutzer zu erstellen

Übrigens ist meine größte Sorge dabei der Digest-E-Mail, da es sich um eine kundenseitige Funktion handelt (versendete E-Mails). Ich nehme an, eine andere Option wäre, die Digest-Konfiguration manuell so zu ändern, dass sie nie gesendet wird, oder? (Obwohl dies erneut ein manueller Schritt ist und hoffentlich irgendwann über eine API möglich sein wird).

Wenn das machbar ist, muss ich technisch gesehen nichts mit dem Benutzer tun. Sie können als gültige Benutzer in Discourse bleiben, die E-Mails werden gestoppt (siehe oben), aber sie können sich nicht mehr anmelden.

Vielleicht funktioniert das. Haben Sie dazu Gedanken?

Das Sperren des Benutzers über die Discourse-API könnte ein guter Weg sein, dies zu automatisieren. Wenn ein Benutzer gesperrt wird, wird er von Discourse abgemeldet und erhält keine Zusammenfassungs-E-Mails mehr. Wird dem Benutzer beim Sperren eine Nachricht übergeben, wird diese als E-Mail an den Benutzer gesendet. Dies könnte genutzt werden, um ihn zur Verlängerung seiner Mitgliedschaft zu ermutigen.

Eine Sache ist zu beachten: Die Sperrung wurde entwickelt, um schwierige Benutzer zu handhaben, nicht den Fall einer abgelaufenen Mitgliedschaft, die in der Zukunft möglicherweise erneuert wird. Es kann sein, dass Sie den Text user_notifications.account_suspended.text_body_template Ihres Forums anpassen müssen, um die Vorlage der E-Mail zu ändern, die an gesperrte Benutzer gesendet wird.

Beiträge, die von einem anonymisierten Benutzer erstellt wurden, sehen so aus:

Es gibt keine einfache Möglichkeit, einen Benutzer wieder zu de-anonymisieren. Der einzige mir bekannte Ansatz besteht darin, den anonymen Benutzer über die Rails-Konsole mit einem neuen Benutzer zusammenzuführen. Da beim Anonymisieren eines Benutzers alle identifizierenden Daten entfernt werden, könnte es schwierig sein, zu wissen, welche Konten zusammengeführt werden sollen. Wenn die Möglichkeit besteht, dass Benutzer ihre Mitgliedschaften erneuern, ist das Sperren des Benutzers wahrscheinlich der bessere Ansatz.

Vielen Dank, @simon – das ist sehr hilfreich.

Ja, aus dem, was du sagst, scheint eine Suspendierung hier der richtige Ansatz zu sein. Ich habe aber eine Frage zu den gesendeten E-Mails. Ich habe CRM-basierte E-Mails, die gesendet werden, wenn sich jemand abmeldet, daher möchte ich nicht, dass Discourse überhaupt etwas sendet.

Du erwähnst: „Wenn beim Suspendieren eines Benutzers eine Nachricht angegeben wird, wird diese Nachricht als E-Mail an den Benutzer gesendet.

Das ist korrekt. Der einfachste Weg, dies zu testen, besteht darin, einen Benutzer mit einer einmaligen E-Mail-Adresse zu erstellen und ihn über die Benutzeroberfläche zu sperren und wieder freizugeben.

Wenn ein Benutzer gesperrt wird, müssen suspended_until und reason gesetzt werden. Diese Felder werden einem gesperrten Benutzer angezeigt, wenn er versucht, sich auf der Website anzumelden. Sie können diesen Text anpassen, indem Sie auf Ihrer Seite „Admin / Anpassen / Text“ nach login.suspended_with_reason suchen.

Sofern Sie die Site-Einstellung hide suspension reasons nicht aktivieren, wird auf der Benutzerkarte und der Profilseite des gesperrten Benutzers eine Benachrichtigung darüber angezeigt, dass der Benutzer gesperrt wurde. Wenn Sie die Site-Einstellung hide suspension reasons aktivieren, wird die Benachrichtigung nur vom Personal angezeigt.