Neuerungen in WoltLab Suite 5.4: Administrative Verbesserungen

Photo by Roma Kaiuk on Unsplash

E-Mail-Protokoll

Der zuverlässige Versand von E-Mails ist essentiell für den Erfolg der eigenen Community. Aktivierungs-Mails sollten ankommen, bevor der Benutzer die Registrierung wieder vergessen hat, Benachrichtigungen und Newsletter sorgen dafür, dass Benutzer in die Community zurückkehren und für die Mehrfaktor-Authentifizierung auf Basis von E-Mails muss die E-Mail innerhalb von 5 Minuten im Postfach des Benutzers liegen, da der Sicherheitscode andernfalls abläuft.

Trotz der Wichtigkeit des Themas ist die korrekte Konfiguration des E-Mail-Versands ein steter Quell von Problemen. Die meisten Probleme dabei entstehen auf dem Weg zwischen WoltLab Suite und dem Mailserver, beispielsweise durch Tippfehler in Kennwörtern, abgelaufene TLS-Zertifikate oder auch durch den eigenen Webhoster bereitgestellte fehlerhafte Informationen. Oftmals sind die Einstellungen nach einem Serverumzug anzupassen.

Um die Diagnose derartiger Probleme zu erleichtern, integriert WoltLab Suite 5.4 ein neues E-Mail-Protokoll. Jede erzeugte E-Mail wird in das Protokoll aufgenommen und der Versandprozess zwischen WoltLab Suite und dem konfigurierten Mailserver detailliert protokolliert. Der Weg jeder E-Mail zu ihrem Empfänger beginnt mit dem Zustand „Wartend“. Eine solche E-Mail wurde in der in WoltLab Suite 3.0 eingeführten Liste von Hintergrundaufgaben hinterlegt.

Das neue E-Mail-Protokoll mit 5 E-Mails.

Im Idealfall kann das E-Mail-Protokoll für wartende E-Mails wenige Sekunden später einen Erfolg in Form des „Erfolgreich zugestellt“ vermerken. Der Mailserver des eigenen Webhosters hat die E-Mail akzeptiert und ist nun für die Zustellung an den Empfänger zuständig. In Erfolgsfalle wird auch die Antwort des SMTP-Servers gespeichert, sodass die E-Mail im Falle von späteren Problemen eindeutig im E-Mail-Protokoll des Webhosters identifiziert werden kann.

Der durch den SMTP-Server gemeldete Erfolg: „2.0.0 Ok: queued as 058052535“.

Wenn es weniger gut läuft, dann wechselt der Status zu „Vorübergehendes Problem“ oder „Endgültig fehlgeschlagen“. Im ersterem Fall wird der Versand der E-Mail durch WoltLab Suite zu einem späteren Zeitpunkt erneut versucht. Dies ist beispielsweise dann der Fall, wenn der Mailserver aufgrund von Wartungsarbeiten kurzzeitig nicht erreichbar ist. Falls der Versand „endgültig fehlgeschlagen“ ist, dann ist die E-Mail verloren. Dies ist der Fall, wenn auch spätere Zustellungsversuche nicht erfolgreich abgeschlossen werden konnten oder der Mailserver den Versand der E-Mail explizit ablehnt. In jedem Fall wird die genaue Fehlermeldung protokolliert.

Der durch den SMTP-Server gemeldete Fehler: „Sender address rejected: not owned by user“.

WebP-Bilder

WebP ist ein neueres Grafikformat, dass im Vergleich zu älteren Grafikformaten mehr Bildqualität pro Datenmenge bietet und dadurch in der Regel Brandbreite einspart.

Mit WoltLab Suite 5.4 werden hochgeladene Grafiken im Bereich Avatare, Cover-Photos und Stil-Logos automatisch ins WebP-Format konvertiert. Zusätzlich wird eine Fallback-Datei in einem älteren Grafikformat für ältere Browser, die das WebP-Format nicht unterstützen, erzeugt bzw. beibehalten.

Löschung von Inhalten mehrerer Nutzer

In WoltLab Suite 5.2 haben wir die einfache Löschung aller Inhalte eines Benutzers integriert. WoltLab Suite 5.4 integriert diese Löschung in die Liste der verfügbaren Aktionen für ausgewählte Benutzer. Auf diese Weise können unerwünschte Inhalte eines Spam-Angriffs noch einfacher wieder entfernt werden.

Die Löschung von Inhalten als verfügbare Aktion. Auswahl der zu löschenden Inhalte von 2 ausgewählten Benutzern.

Dateiupload für Benutzerränge

Nachdem wir in WoltLab Suite 5.3 das Hochladen von Stilbildern erleichtert haben, erweitern wir diese bequeme Integration des direkten Uploads auf die Rangbilder. Rangbilder können jetzt direkt über die Administrationsoberfläche hochgeladen werden. Ein Hochladen über ein FTP-Programm mit anschließender fehleranfälliger manueller Eingabe des korrekten Dateipfads entfällt.

Hochladen des Twemoji-Sterns als Rangbild.

Der beispielhaft genutzte Stern als Ranggrafik entstammt Twitter Emoji (Twemoji) und ist CC-BY 4.0 lizenziert.

Knopf, um alle Rebuild-Worker auszuführen

Das Aktualisieren der Anzeigen ist beispielsweise nach größeren Updates oder einem Datenimport erforderlich. Bisher musste man die Aktionen dabei jeweils einzeln anstoßen, was relativ mühselig sein kann. Mit WoltLab Suite 5.4 kann über einen einzigen Knopf der Durchlauf sämtlicher Aktionen angestoßen werden. Die Aktionen werden in diesem Fall automatisch der Reihe nach ausgeführt.

Das Aktualisieren aller Anzeigen bei Schritt 5 von 21.

Berechtigungen für Seiten und Boxen invertieren

Seiten und Boxen des in WoltLab Suite Core integrierten CMS können seit jeher mit Berechtigungen für Benutzer und Gruppen versehen werden. Bislang war es aber nur möglich, Berechtigungen an eine definierte Menge autorisierter Benutzer zu vergeben. Mitunter kann es aber sinnvoll sein, eine Menge von Benutzern von der Sichtbarkeit auszuschließen. So ist es beispielsweise nicht sinnvoll eine Box, die über die Premiummitgliedschaft in der eigenen Community informiert den Mitgliedern anzuzeigen, die bereits diese Premiummitgliedschaft erworben haben.

Die invertierte Berechtigung beim Erstellen einer neuen Box.

Berechtigungen für Signatur-Anhänge

Bleiben wir einen Augenblick beim Thema Berechtigungen: In WoltLab Suite 5.2 haben wir die Unterstützung für das Hochladen von Dateianhängen in der Signatur ergänzt. Bislang haben diese Dateianhänge die allgemeinen Dateianhangs-Berechtigungen von Nachrichten, wie beispielsweise Foren-Beiträgen, verwendet. In WoltLab Suite 5.4 erhalten Signaturen einen separaten Satz von Berechtigungen, sodass Signatur-Bilder schlank bleiben, auch wenn hochauflösende Fotos in Beiträgen unterstützt werden sollen.

Die Berechtigungen für Signaturen, inklusive der neuen Berechtigungen zum Hochladen von Dateianhängen.

Verbesserung von „Listen“-Einstellungen

Diese Neuigkeit ist auf dem Screenshot der neuen Signatur-Berechtigungen ganz unten bei den erlaubten Dateiendungen bereits zu sehen: WoltLab Suite 5.4 verbessert die Eingabe von Aufzählungslisten in den Einstellungen und Berechtigungen. Bislang mussten derartige Listen in einem Textfeld durch Zeilenumbrüche getrennt eingetragen werden. Darunter leidet bei einer größeren Menge von Einträgen die Übersichtlichkeit, wodurch leicht Fehler gemacht werden können. Die neue Eingabemaske in WoltLab Suite 5.4 sortiert die Einträge automatisch in alphabetischer Reihenfolge und stellt sicher, dass doppelte Einträge automatisch ausgefiltert werden. Darüber hinaus wächst das Eingabefeld automatisch mit der Anzahl der Einträge bis zu einer bestimmten maximalen Höhe. Leere Felder sind damit sehr platzsparend, sodass mehr Platz für andere Optionen bleibt.

Das neue Eingabefeld für reservierte Benutzernamen ohne Einträge. Das Eingabefeld nach Eintragung von „Administrator“. Und die Fehlermeldung bei Eintragung eines doppelten Werts in eine volle Liste.

In allen Paketen der WoltLab Suite ist diese neue Form der Eingabe bereits im Einsatz. In eingesetzten Plugins sind Anpassungen durch den Entwickler von Nöten. Unser Entwickler-Handbuch erklärt den Einsatz des lineBreakSeparatedText-OptionType.

Verbesserung der Sicherheit

Die in unserem ersten Artikel vorgestellten Änderungen verbessern die Sicherheit der eigenen Community bereits deutlich. WoltLab Suite 5.4 enthält aber noch weitere, weniger offensichtliche, Änderungen, um das Sicherheitsniveau weiter zu steigern.

Flood-Control

Eine Flood-Control für einzelne Inhalte ist seit jeher in WoltLab Suite integriert. WoltLab Suite 5.4 enthält ein neues Flood-Control-Framework, damit Entwickler ihre Plugins leicht um einen Schutz vor Missbrauch durch Flooding erweitern können. Der Migration-Guide unseres Entwickler-Handbuchs enthält eine entsprechende Anleitung zur Verwendung dieses Frameworks.

Aber nicht nur Entwickler, sondern auch Endkunden und Mitglieder in Communitys auf Basis von WoltLab Suite profitieren von diesem Flood-Control-Framework. Konversationen, die „Kennwort vergessen“-Funktion und auch die Mehrfaktor-Authentifizierung werden standardmäßig auf Basis dieses Frameworks geschützt. So wird beispielsweise das Erraten von Mehrfaktor-Codes nach wenigen Versuchen gestoppt, um Benutzerkonten vor unautorisiertem Zugriff zu schützen.

ACP-Sitzungsprotokoll

Das bekannte Protokoll durchgeführter Aktionen in der Administrationsoberfläche ist nun detaillierter. Für jede Anfrage wird jetzt der genaue Pfad protokolliert. Im Falle von AJAX-Anfragen, die alle den gleichen Pfad nutzen, wird zusätzlich die ausgeführte Aktion im Protokoll hinterlegt.

Das überarbeitete Protokoll der ACP-Sitzungen.

Kommentare 22

Das klingt alles schon mal super. :) Werden automatische WebP-Bilder auch bei den Medien Einzug halten?

Super! Ich freue mich schon auf die neuen Funktionen. Noch besser wäre es natürlich, wenn man bei E-Mail-Fehlern automatisiert die betreffenden Nutzer auf "nicht aktiviert" zurücksetzen könnte oder das System einen anderen passiven Status setzt, damit die Nutzer das Problem beheben - oder inaktiviert werden.

Für eine derartige Deaktivierung ist es nicht ausreichend oder sinnvoll die Übermittlung zwischen WoltLab Suite und dem eigenen Mailserver zu überwachen, diese wird bei korrekter Konfiguration in nahezu allen Fällen erfolgreich sein, weil die Zustellung an den tatsächlichen Empfänger erst nach diesem Schritt erfolgt. Um den kompletten Weg überwachen zu können, müssen auch die eingehenden Bounces verarbeitet werden.

In der WoltLab Cloud wird bei eingehenden Bounces bereits eine Deaktivierung der E-Mail-Adresse von Benutzern vorgenommen: RE: Managed Hosting - Eigene SMTP Server

Die Funktion sollte es für alle Kunden geben!

Die WoltLab Cloud nutzt zum Bounce-Handling speziell für diesen Zweck konfigurierte Mailserver. Das ganze kann außerhalb der WoltLab Cloud daher nicht in dieser Form zum Einsatz kommen.

Die Funktion ließe sich problemlos umsetzen. Angabe des Postfaches in dem die Bounces eingehen mit POP oder IMAP oder eben notfalls händische Übertragung der Bounces. Nur eben mit einem weiteren Status als „Deaktiviert“. In der Klaut gibt es ja auch eine abweichende Anzeige für wegen Mailrückläufern deaktivierten Accounts.

PS: Das Argument FÜR Woltlab war mal, dass Ihr im Gegensatz zu Invision und Co die Kunden nicht in die Klaut genötigt habt. Jetzt Weiterentwicklungen nur für geKlaute Kunden anzubieten hat ein ganz bitteres Geschmäckle!

Mit Verlaub, aber das "verbesserte" ACP-Protokoll dürfte dem normalen Anwender so gut wie nichts an Erkenntnisgewinn bringen. Ich habe diesen häufig vorgebrachten Wunsch immer so verstanden, dass dort im Klartext stehen soll: "Nutzer A hat die neue Benutzergruppe X hinzugefügt, hat die Nutzer B und C dieser Gruppe hinzugefügt, hat Benutzer Z in Gruppe D hinzugefügt und zum guten Schluss dann noch die Benutzerränge 1, 2 und 3 neu erstellt. Ach ja und für die Löschung des Hauptsponsors ist er auch verantwortlich."

Das ganze natürlich kurz und präzise untereinander aufgelistet.


Gruß norse

Genau so wie du es hier aufzählst, suchen wir es auch, denn das Protokoll wie es jetzt ist und wie es mit dem Update ist wird uns eigentlich nichts bringen.

Ich bin ja der Hoffnung das von seitens Woltlab da mal eine Upgrade in dieser Art kommt.

Wann wird das Update denn released?

Hier läuft aktuell die Alpha 2, also wird es schon noch etwas dauern. :)

Ich persönlich verstehe auch nicht, warum es immer alle so eilig haben. :saint:

Gab es nicht mal die möglichkeit die Alpha auch zu schon zu testen? oder wurde das abgeschafft?

Alpha-Version gibt es von uns in der Regel nicht zum Download. Aber ab der Beta-Version bieten wir dann auch einen Download zum Testen an.

Wird dieser auch mit i18n-Unterstützung ausgeliefert oder steht dieser nur einsprachig zur Verfügung?

lineBreakSeparatedText unterstützt nur ein einsprachige Optionen.

Ich nehme an, wenn beim Aktualisieren aller Anzeigen beispielsweise der zehnte Worker einen Fehler verursacht, man diesen Fehler behebt und alle übrigen Worker ausführen möchte, man dies manuell machen sollte, weil der Button tatsächlich immer alle Worker neu anstößt, auch wenn bereits welche durchliefen?

Das kann die Funktion nicht. Im Fehlerfall müsste man von vorne beginnen oder manuell die restlichen Schritte durchführen.

Wie sieht es denn bei der Ausführung von allen "Anzeigen aktualisieren" aus?

Werden dort Anzeigen, die nur einmalig (z.B. "Neue Vorschaugrafikgrößen von Galerie-Bildern und -Videos erzeugen") ausgeführt werden müssen, ausgeschlossen?

Grundsätzlich ist das Aktualisieren aller Anzeigen nur nach größeren Updates oder nach einem Import von Nöten. Entsprechend werden keine der Aktionen ausgeschlossen.

zu E-Mail-Protokoll:

Wäre es nicht passender, E-Mails den Status "Erfolgreich übermittelt" zu geben (statt "Erfolgreich versendet" oder "Erfolgreich zugestellt")? Denn schließlich wird hier ja nur die "Übermittlung" zum eigenen Mailserver überwacht bzw. dargestellt - und eben nicht der endgültige Versand bzw. Zustellung an den eigentlichen Empfänger.

Die Frage habe ich mir beim Verfassen des entsprechenden Absatzes auch gestellt. Ich hab den Vorschlag als Issue vermerkt:

https://github.com/WoltLab/WCF/issues/4230

Wuhu endlich Berechtigungen für Boxen.

Berechtigungen in Boxen gibt es bereits jetzt (WoltLab Suite 5.3). Neu ist die Möglichkeit des Invertierens der Berechtigung.