[3.3] [CDB] Delete Inactive Members

In diesem Forum können Extension-Autoren ihre Extensions vorstellen, die sich noch im Entwicklungsstatus befinden. Der Einbau in Foren im produktiven Betrieb wird nicht empfohlen.
Benutzeravatar
Mike-on-Tour
Supporter
Supporter
Beiträge: 1274
Registriert: 13.01.2020 21:09
Kontaktdaten:

[3.3] [CDB] Delete Inactive Members

Beitrag von Mike-on-Tour »

Extension Name: Delete Inactive Members

Kompatibel mit phpBB3.3.x

Autor: Mike-on-Tour
Beschreibung: Das in letzter Zeit sowohl hier als auch auf phpbb.com geäußerte Phänomen zunehmender Bot-Registrierungen hat während einer Diskussion unter den Supportern die Idee zu dieser Erweiterung geboren.

Diese Erweiterung ermöglicht es dem Administrator, automatisch alle Mitglieder zu löschen, die entweder ihren Account nicht aktiviert haben (Inaktive) oder nach Aktivierung nie eingeloggt waren (Schläfer) oder eingeloggt waren, aber nie einen Beitrag geschrieben haben (Nullposter).
Auf einer Einstellungsseite im Admin-Bereich kann die Anzahl der Tage seit Registrierung ausgewählt werden, nach Ablauf derer die betroffenen Mitglieder gelöscht werden. Schutz vor Löschung kann entweder für einzelne Mitglieder durch Angabe des Benutzernamens oder für ganze Gruppen gewährt werden; bei diesen Gruppen muss es sich um die Hauptgruppe der zu schützenden Mitglieder handeln.
Die gewählten Einstellungen können mittels eines "Test"-Buttons daraufhin überprüft werden, ob sie die gewünschten Mitglieder wie beabsichtigt auswählen. Nach Anklicken des Buttons öffnet sich ein neues Fenster, in dem tabellarisch alle Mitglieder aufgeführt werden, die den eingestellten Kriterien entsprechen.
Die Löschung erfolgt mittels eines Cron-Jobs, dessen Intervall zwischen zwei Läufen in den Einstellungen für entweder Stunden oder Tage ausgewählt werden kann. Da zur Ressourcenschonung der Datenbank bei jedem Lauf des Cron-Jobs nur maximal 1.000 Mitglieder gelöscht werden, ist es zweckmäßig, bei einer großen Anzahl betroffener Mitglieder zunächst ein Zeitintervall im Stundenbereich zu wählen, um innerhalb eines möglichst kurzen Zeitraumes eine große Zahl von betroffenen Mitgliedern zu löschen. Nachdem die Datenbank von allen Mitgliedern gesäubert ist, die die Kriterien zum Löschen erfüllen, kann dann ein Zeitintervall von einem oder auch mehreren Tagen ausgewählt werden.
Warnung: Nach Aktivierung dieser Erweiterung auf ihrer Einstellungsseite löscht sie die Mitglieder, die die Kriterien zum Löschen erfüllen, ohne weitere Warnung. Dadurch können unbeabsichtigt Mitglieder gelöscht werden, die nicht gelöscht werden sollen, wenn der Admin bei der Auswahl der Einstellungen unaufmerksam ist. Setze diese Erweiterung deshalb mit Umsicht ein! Anwendung dieser Erweiterung erfolgt auf eigene Gefahr!
Voraussetzungen: phpBB 3.3.x PHP >= 7.4, <8.5
Download: https://www.mike-on-tour.com/viewtopic.php?p=706#p706
Sprachen: de (formell und informell), en
Styles: prosilver
Github repository: https://github.com/Mike-on-Tour/dim
Bildschirm-Fotos:
dim_Einstellungen.png
Benutzeravatar
LukeWCS
Supporter
Supporter
Beiträge: 2962
Registriert: 15.12.2014 10:19
Kontaktdaten:

Re: [3.3] [BETA] Delete Inactive Members

Beitrag von LukeWCS »

Sehr schön, endlich geht es den automatisiert registrierten Spam- und Schläfer-Accounts ebenso automatisiert an den Kragen. So muss das! 8)

Vielen Dank für diese Ext! :grin:

Die Warnung könntest du noch in einen gelben Kasten setzen, kannst dir bei meinen Ext Themen anschauen wie das geht, das hab ich überall drin. Ebenso würde ich in dieser Warn-Box dann auch explizit die Vorschau erwähnen. Das ist nicht nur ein klasse Feature um die Einstellungen überprüfen zu können, sondern hilft auch dabei, von vorneherein kleinere "Katastrophen" vermeiden zu können.

Bei TC eingetragen.
Möge das Backup mit dir sein. Immer.
Kein Support via PN! Siehe den Punkt "Private Nachrichten" im phpBB.de-Knigge.
Erweiterungen - Infos zur artgerechten Haltung / phpBB Ext Check - Analyse von Erweiterungen bezüglich Vorgaben und Kompatibilität
Joe Kolade
Mitglied
Beiträge: 217
Registriert: 27.02.2023 19:59

Re: [3.3] [RC] Delete Inactive Members

Beitrag von Joe Kolade »

Hallo, ist das jetzt eine abgespeckte Version der Erweiterung "Userreminder for phpbb"?

Gruß Joe
Benutzeravatar
Scanialady
Supporter
Supporter
Beiträge: 1992
Registriert: 23.02.2009 16:29
Wohnort: Velbert (NRW)
Kontaktdaten:

Re: [3.3] [RC] Delete Inactive Members

Beitrag von Scanialady »

man könnte sagen: das reminded nichts mehr, das haut weg...
*Wenn von etwas kein Backup existiert, dann ist es nicht wichtig.
*Der Unterschied zwischen "Gast" und "Gastronom" liegt nicht nur in ein paar Buchstaben.
*Wenn das Auto in die Werkstatt soll, ist "Hier geht nix". - "Äh? Was geht denn nicht?" - "Ja NIX!" wenig hilfreich.
Benutzeravatar
Mike-on-Tour
Supporter
Supporter
Beiträge: 1274
Registriert: 13.01.2020 21:09
Kontaktdaten:

Re: [3.3] [RC] Delete Inactive Members

Beitrag von Mike-on-Tour »

Wie Scanialady schon schrieb, da wird niemand erinnert, das löscht einfach die entsprechenden Accounts, um beispielsweise Massenregistrierungen von SpamBots in den Griff zu kriegen.
Joe Kolade
Mitglied
Beiträge: 217
Registriert: 27.02.2023 19:59

Re: [3.3] [RC] Delete Inactive Members

Beitrag von Joe Kolade »

Okay, dann könnte man aber sagen, dass "Userreminder for phpbb" "Delete Inactive Members" beinhaltet?
Bis dato habe ich "Userreminder for phpbb" fast ausschließlich zum Auflisten und Löschen der Schläfer und Null-Poster benutzt. Das Anzeigen in verschiedenen Fenstern der betreffenden Mitglieder finde ich eigentlich sehr praktisch und übersichtlich.
Werden beide Erweiterungen gleichermaßen weiter gepflegt?

Gruß Joe
Benutzeravatar
Mike-on-Tour
Supporter
Supporter
Beiträge: 1274
Registriert: 13.01.2020 21:09
Kontaktdaten:

Re: [3.3] [RC] Delete Inactive Members

Beitrag von Mike-on-Tour »

Joe Kolade hat geschrieben: 16.04.2024 16:47 Okay, dann könnte man aber sagen, dass "Userreminder for phpbb" "Delete Inactive Members" beinhaltet?
Nein, sonst hätte es diese Erweiterung nicht gebraucht, außerdem berücksichtigt diese Erweiterung auch diejenigen, die wegen Fake-E-Mail-Adresse nicht auf die Aktivierungsmail antworten können, das macht Userreminder nicht.
Joe Kolade hat geschrieben: 16.04.2024 16:47 Werden beide Erweiterungen gleichermaßen weiter gepflegt?
Davon kannst du ausgehen, ich pflege all meine Erweiterungen.
Benutzeravatar
LukeWCS
Supporter
Supporter
Beiträge: 2962
Registriert: 15.12.2014 10:19
Kontaktdaten:

Re: [3.3] [RC] Delete Inactive Members

Beitrag von LukeWCS »

@Joe

Da ich im Team wohl derjenige bin, der DIM am meisten befürwortet hat, hier meine kurze Zusammenfassung der Unterschiede beider Exts, denn genau diese Unterschiede sind für mich relevant und deswegen kenne ich diese auch aus dem Stand:
  • Der Fokus von UR liegt bei den Erinnerungen und hat als Zielgruppe primär Menschen und deren Accounts. Der Fokus von DIM liegt jedoch bei Bots und von diesen angelegten Spam-Accounts.
  • Bei UR gibt es bei Schläfern und Null-Postern quasi Sicherheitsschaltungen, die nicht deaktiviert werden können. Bei DIM sind diese jedoch schaltbar und standardmässig nicht aktiv, wodurch DIM deutlich "rabiater" agieren kann.
Kurz: UR kann DIM nicht ersetzen und DIM kann UR nicht ersetzen. Zwei verschiedene Exts für verschiedene Szenarios. Mit DIM kann ich automatisiert bestimmte Accounts löschen, die ich mit UR nicht löschen kann.
Möge das Backup mit dir sein. Immer.
Kein Support via PN! Siehe den Punkt "Private Nachrichten" im phpBB.de-Knigge.
Erweiterungen - Infos zur artgerechten Haltung / phpBB Ext Check - Analyse von Erweiterungen bezüglich Vorgaben und Kompatibilität
Benutzeravatar
Mike-on-Tour
Supporter
Supporter
Beiträge: 1274
Registriert: 13.01.2020 21:09
Kontaktdaten:

Re: [3.3] [CDB] Delete Inactive Members

Beitrag von Mike-on-Tour »

DIM wurde heute auf phpbb.com validiert und ist ab sofort über die CDB abrufbar.
Support-Anfragen, Verbesserungsvorschläge u.ä. bitte über den dortigen Support-Bereich einreichen.
Benutzeravatar
LukeWCS
Supporter
Supporter
Beiträge: 2962
Registriert: 15.12.2014 10:19
Kontaktdaten:

Re: [3.3] [CDB] Delete Inactive Members

Beitrag von LukeWCS »

Servus Mike

Nachdem ich DIM jetzt einige Zeit im LB aktiv habe mit allen gewünschten Einstellungen, aber noch nicht aktiviert (nur zum Beobachten), fiel mir auf, dass ich bei den Nullpostern an eine Sache nicht gedacht habe: NRU mit nicht-freigegebenen Beiträgen. Den "Spass" hatte ich ja schon bei LMR und die Erkenntnisse daraus sind jetzt hilfreich.

Ich habe nun im TB 3 komplett neue User angelegt damit es keinerlei Probleme mit bestehenden Test Usern und deren Konfigurationen gibt und diese 3 dann entsprechend ihrem Namen präpariert. So sieht in der DIM Vorschau die Liste momentan aus:

Code: Alles auswählen

dim_noact	Kürzlich registrierte Benutzer	Sa 30. Mär 2024, 21:53	Nicht aktiviert
dim_nologin	Kürzlich registrierte Benutzer	Sa 30. Mär 2024, 22:10	Nie eingeloggt
dim_nopost	Kürzlich registrierte Benutzer	Sa 30. Mär 2024, 22:26	Nullposter
Prinzipiell alles richtig, DIM verhält sich exakt wie es gedacht war. Allerdings hat der User dim_nopost 1 nicht-freigegebenen Beitrag wegen NRU.

Typischer Use Case: Frist ist auf 1 Woche eingestellt, dann ist Admin 2 Wochen in Urlaub und in dieser Zeit meldet sich ein neuer User an und postet einen Beitrag, der durch die NRU Funktion erst freigegeben werden muss. Nach 1 Woche greift bei DIM aber bei diesem User die Nullposter-Regel und löscht den User raus, obwohl der User ja grundsätzlich einen Post hat, wenn auch nicht sichtbar. Das war so natürlich nicht gedacht, denn in diesem speziellen Fall darf DIM nicht aktiv werden.

Ich habe mir das bereits angeschaut. Es bräuchte einen zusätzlichen SQL Query auf die Posts Tabelle um zu ermitteln, ob der User einen Post geschrieben hat, der den Status post_visibility 0 hat. Wenn ja, muss der User ignoriert werden. Um hier auch Last einsparen zu können, kann man in der Users Tabelle zusätzlich das Feld user_lastpost_time des Users abfragen. Die Datensätze der User werden ja sowieso schon per SQL abgefragt, da bräuchte es nur ein Feld mehr in der Abfrage. Ist bei diesem Feld der Wert 0, können wir uns den zusätzlichen SQL Query sparen und der Account ist sofort freigegeben zum Löschen. Wenn der Wert höher ist, muss der SQL Query ausgeführt und ausgewertet werden.

Wenn von deiner Seite nichts gegen diese Änderung spricht, könnte ich das bei Gelegenheit als PR bei dir einreichen.
Möge das Backup mit dir sein. Immer.
Kein Support via PN! Siehe den Punkt "Private Nachrichten" im phpBB.de-Knigge.
Erweiterungen - Infos zur artgerechten Haltung / phpBB Ext Check - Analyse von Erweiterungen bezüglich Vorgaben und Kompatibilität
Antworten

Zurück zu „Extensions in Entwicklung“