[3.3] [3.2] Berechtigung "Beitrag löschen" leicht fehlerhaft.

Fragen rund um die Installation, Administration und Benutzung von phpBB.
Forumsregeln
Bitte im Thementitel den Präfix deiner phpBB-Version angeben
Antworten
hackepeter13
Valued Contributor
Beiträge: 3545
Registriert: 21.04.2004 12:22
Wohnort: Berlin
Kontaktdaten:

[3.3] [3.2] Berechtigung "Beitrag löschen" leicht fehlerhaft.

Beitrag von hackepeter13 »

Hallo phpBB-Team,

mir ist eben Aufgefallen, das die Forum-Berechtigung "Kann eigene Beiträge löschen" und "Kann eigene Beiträge als gelöscht markieren" etwas konfus sind.

Sehe ich das zum Verständnis so richtig?:
"Kann eigene Beiträge löschen" = Dauerhaft löschen.
"Kann eigene Beiträge als gelöscht markieren" = Eine Art Soft-Delete, Beitrag kann wieder hergestellt werden (es steht auch dort "Moderatoren, die Beiträge freigeben können, können als gelöscht markierte Beiträge wiederherstellen").

Folgende Szenarien bin ich nun durchgegangen:

Ein phpBB 3.2 sowie 3.3 (bei beiden das selbe Spiel).
Ein Testuser in der Gruppe "registrierte Mitglieder" (nicht in der Gruppe "kürzlich registrierte Mitglieder").
Eine Foren-Kategorie "Dein erstes Forum" (wie es standardmäßig nach der Installation vorhanden ist).

Beide Foren-Berechtigungen sind aktiviert (auf "Ja" gesetzt).
Testuser erstellt ein neues Testthema.
Nun möchte Testuser sein Testthema löschen.
- im ersten Beitrag auf "Beitrag löschen" ([X] Icon), kommt die Frage "Endgültiges löschen" und das Feld "Begründung".
- im ersten Beitrag auf "Beitrag bearbeiten", unten bei Option steht "Diesen Beitrag löschen" und "Diesen Beitrag endgültig löschen, so dass er nicht wiederhergestellt werden kann."

Die Auswahl Beitrag löschen ohne das Auswählen von "Endgültiges löschen" führt zu einem Soft-Delete (Beitrag kann wiederhergestellt werden).
Mit der Auswahl des endgültigen Löschens, wird dies auch unwiderruflich getan.

Soweit so gut.

Nun aber deaktiviere ich die Foren-Berechtigung "Kann eigene Beiträge als gelöscht markieren" ("Kann eigene Beiträge löschen" bleibt aktiviert).
Möchte Testuser sein Testthema jetzt löschen, passiert folgendes:
- im ersten Beitrag auf "Beitrag löschen" ([X] Icon), kommt nur die Frage ob man sicher ist und das Feld "Begründung".
Bestätigt man das Löschen mit "Ja", wird der Beitrag und das Thema erfolgreich gelöscht.
- im ersten Beitrag auf "Beitrag bearbeiten", unten bei Option steht nur noch "Diesen Beitrag löschen".
"Diesen Beitrag endgültig löschen, so dass er nicht wiederhergestellt werden kann." steht also nicht mehr zur Verfügung.
Setzt man hier ("Diesen Beitrag löschen") ein Häkchen und Sendet ab, kommt die Meldung "Du darfst keine Beiträge in diesem Forum löschen.", obwohl die Foren-Berechtigung "Kann eigene Beiträge löschen" noch auf "Ja" steht.

Merke das Löschen über Beitrag bearbeiten geht nicht, aber über das "Beitrag löschen" Icon im Beitrag geht.
Die Foren-Berechtigung "Diesen Beitrag endgültig löschen, so dass er nicht wiederhergestellt werden kann." ändert die Option "Beitrag löschen" beim Betrag bearbeiten nicht richtig, so mein Eindruck oder sehe ich hier etwas falsch?!


PS: Ich hoffe es ist nachvollziehbar beschrieben.
Benutzeravatar
LukeWCS
Supporter
Supporter
Beiträge: 2125
Registriert: 15.12.2014 10:19
Kontaktdaten:

Re: [3.3] [3.2] Berechtigung "Beitrag löschen" leicht fehlerhaft.

Beitrag von LukeWCS »

Moin hackepeter

Kann ich bestätigen. phpBB verhält sich hier vorsichtig formuliert "unlogisch". Zuerst hatte ich das mit einem lokalen 3.3.7 TB getestet und konnte das exakt reproduzieren. Dann spasseshalber noch mit lokalem 3.2.11 TB getestet und quasi als Bonus noch mit lokalem 3.1.12 TB. In allen Fällen exakt das gleiche Verhalten.

Testszenerio:
  • Beitrag erstellt wurde immer im standardmässig angelegten "Ihr erstes Forum".
  • Es wurde ein Benutzer "Test" angelegt der als normaler Benutzer dient.
  • Im besagten Forum wurden speziell diesem Benutzer "Test" eigene Forenrechte zugewiesen mit dem Profil "Standard Zugang".
  • Dann wurde diesem Benutzer das Recht "Kann eigene Beiträge als gelöscht markieren" per "Nie" entzogen.
  • Anschliessend mit dem Benutzer "Test" im besagten Forum ein Thema angelegt und versucht den Beitrag (und damit das Thema) über die besagte Editor-Option zu löschen: negativ
  • Dann versucht den Beitrag (und damit das Thema) per Beitrags-Button zu löschen: positiv
edit: Ich denke ich weiss warum. Habe beide Rechte im Source zurückverfolgt und es sieht so aus, als ob diese falsch verdrahtet wurden. Sobald ich mir sicher bin, melde ich mich wieder.
Möge das Backup mit dir sein. Immer.

Erweiterungen - Infos zur artgerechten Haltung
phpBB Ext Check - Analysesystem für phpBB Erweiterungen (Entwickler Werkzeug)
Benutzeravatar
LukeWCS
Supporter
Supporter
Beiträge: 2125
Registriert: 15.12.2014 10:19
Kontaktdaten:

Re: [3.3] [3.2] Berechtigung "Beitrag löschen" leicht fehlerhaft.

Beitrag von LukeWCS »

hackepeter13 hat geschrieben: 22.04.2022 14:59 PS: Ich hoffe es ist nachvollziehbar beschrieben.
Vorzüglich!

Du hast definitiv einen Bug entdeckt. Und dieser Bug geht zurück bis zu 3.1.0, hat also auch schon eine lange "Tradition", wie dieser. :D

Angefangen bei der Fehlersuche habe ich wie üblich damit, jede Menge Debugs einzubauen. Es hat eine Weile gedauert, bis ich die richtigen Stellen dafür gefunden hatte und dann nochmal, bis ich den Zusammenhang verstanden hatte. Aufgefallen ist mir, dass an functions_posting.php das falsche Recht f_softdelete übergeben bzw. getriggert wurde. Und genau dieses Recht haben wir dem Benutzer ja eigentlich entzogen. Logisch das phpBB sich dann standhaft weigert, den Beitrag zu "löschen". Tatsächlich hätte in dem Szenario das Recht f_delete übergeben bzw. getriggert werden müssen, was aber nicht der Fall ist. Im PHP Source ist alles okay. Das Ganze hat sich als simpler Parameter-Übergabe-Fehler erwiesen, weil ganz einfach beide Rechte im Style Template falsch verdrahtet wurden.

Das Folgende ist primär als Info für hackepeter gedacht, jedoch nicht als allgemeine Patch-Aufforderung zu verstehen. :)

Fix v2

styles\prosilver\template\posting_editor.html

Suche:

Code: Alles auswählen

			<!-- IF S_SOFTDELETE_ALLOWED or S_DELETE_ALLOWED -->
				<hr class="dashed" />
				<dl>
					<dt><label for="delete">{L_DELETE_POST}{L_COLON}</label></dt>
					<dd><label for="delete"><input type="checkbox" name="delete" id="delete" {S_SOFTDELETE_CHECKED} /> {L_DELETE_POST_WARN}</label></dd>
					<!-- IF S_DELETE_ALLOWED and S_SOFTDELETE_ALLOWED -->
						<dd><label for="delete_permanent"><input type="checkbox" name="delete_permanent" id="delete_permanent" /> {L_DELETE_POST_PERMANENTLY}</label></dd>
					<!-- ENDIF -->
				</dl>
			<!-- ENDIF -->
Ersetze mit:

Code: Alles auswählen

			{% if S_SOFTDELETE_ALLOWED || S_DELETE_ALLOWED %}
				<hr class="dashed" />
				<dl>
					<dt><label for="delete">{{ lang('DELETE_POST') ~ lang('COLON') }}</label></dt>
					{% if S_SOFTDELETE_ALLOWED %}
						<dd><label for="delete"><input type="checkbox" name="delete" id="delete" {{ S_SOFTDELETE_CHECKED }} /> {{ lang('DELETE_POST_WARN') }}</label></dd>
					{% endif %}
					{% if S_DELETE_ALLOWED %}
						<dd><label for="delete_permanent"><input type="checkbox" name="delete_permanent" id="delete_permanent" /> {{ lang('DELETE_POST_PERMANENTLY') }}</label></dd>
					{% endif %}
				</dl>
			{% endif %}
Ich habe mit dem geänderten Template Code alle denkbaren Szenarien getestet und keine Probleme festgestellt. Trotzdem gebe ich darauf keine Garantie. Styles die auf "prosilver" basieren, was eh wohl auf die meisten zutrifft, werden diesen Fehler unter Umständen ebenfalls mitschleifen.

edit: v2: Jetzt wird auch das Szenario f_delete:false und f_softdelete:true berücksichtigt. Ausserdem die veraltete phpBB Syntax (die eh keine Relevanz mehr hat) auf Twig umgestellt.
Möge das Backup mit dir sein. Immer.

Erweiterungen - Infos zur artgerechten Haltung
phpBB Ext Check - Analysesystem für phpBB Erweiterungen (Entwickler Werkzeug)
Benutzeravatar
LukeWCS
Supporter
Supporter
Beiträge: 2125
Registriert: 15.12.2014 10:19
Kontaktdaten:

Re: [3.3] [3.2] Berechtigung "Beitrag löschen" leicht fehlerhaft.

Beitrag von LukeWCS »

Möge das Backup mit dir sein. Immer.

Erweiterungen - Infos zur artgerechten Haltung
phpBB Ext Check - Analysesystem für phpBB Erweiterungen (Entwickler Werkzeug)
Antworten

Zurück zu „Support-Forum“