Ist auf jeden Fall eine große Hilfe. Wir hatten jetzt den Fall, dass ein langjähriger User mit einem anderen ein Problem hatte und statt uns um Klärung zu bitten, neben der Anfrage um Löschung seines Accounts gleich alle seine Anhänge gelöscht hat :-( - über 300. Das soll uns nicht nochmal passieren, weder gewollt noch aus versehen ...
Freut mich, dass es dir weiterhilft.
sehr nützliches Plugin SvePu!
Wichtige Anmerkung:
1) Sollte man lediglich die Schaltfläche und die Checkboxen aus den Templates entfernen, ist die Option zum Löschen zwar nicht mehr sichtbar, allerdings bleibt die technische Funktion erhalten.
Man kann weiterhin einen entsprechenden POST-Request absenden und die Dateien löschen, weil das Backend den Vorgang verarbeitet.
2) Das PlugIn von SvePu erzeugt einen zusätzlichen "Indikator" für die Erlaubnis zum massenhaften Löschen. Aber auch hier scheint die technische Möglichkeit zum Löschen tatsächlich bestehen zu bleiben.
Wenn man die Löschfunktion sicher deaktivieren möchte, muss man dies im PHP-Code ausschalten, z.B. folgende Funktion auskommentieren:
usercp.php / Zeile 4140 ff:
Code:
while($attachment = $db->fetch_array($query))
{
# remove_attachment($attachment['pid'], '', $attachment['aid']);
}
[ETS]
(12.06.2024, 15:16)[ExiTuS] schrieb: [ -> ]Wichtige Anmerkung:
1) Sollte man lediglich die Schaltfläche und die Checkboxen aus den Templates entfernen, ist die Option zum Löschen zwar nicht mehr sichtbar, allerdings bleibt die technische Funktion erhalten.
Man kann weiterhin einen entsprechenden POST-Request absenden und die Dateien löschen, weil das Backend den Vorgang verarbeitet.
2) Das PlugIn von SvePu erzeugt einen zusätzlichen "Indikator" für die Erlaubnis zum massenhaften Löschen. Aber auch hier scheint die technische Möglichkeit zum Löschen tatsächlich bestehen zu bleiben.
......
Hast du das getestet?? Normalerweise sollte das durch das Plugin mit ausgeschlossen werden.
Wie schon geschrieben, ist das Plugin nicht komplett durchentwickelt ... kann also sein, dass nicht alle Eventualitäten dadurch abgedeckt sind.
Nein, leider nicht nicht getestet. Ich habe nur en Code überflogen.
Oder wird der Löschvorgang mit deiner Funktion attachmentmassdeletecontrol_attachment_delete() abgefangen und wirft eine Fehlermeldung, bevor (Hook start) tatsächlich gelöscht wird!?
Dann muss ich revidieren.
Viel wichtiger ist Punkt 1)
[ETS]
(12.06.2024, 15:59)[ExiTuS] schrieb: [ -> ]Nein, leider nicht nicht getestet. Ich habe nur en Code überflogen.
Oder wird der Löschvorgang mit deiner Funktion attachmentmassdeletecontrol_attachment_delete() abgefangen und wirft eine Fehlermeldung, bevor (Hook start) tatsächlich gelöscht wird!?
Dann muss ich revidieren.
Viel wichtiger ist Punkt 1)
[ETS]
Ja, das sollte das Löschen über die URL Direkteingabe unterbinden.
PHP-Code:
function attachmentmassdeletecontrol_attachment_delete()
{
global $mybb;
if ($mybb->usergroup['canmassdeleteattachments'] != 1)
{
error_no_permission();
}
}
$plugins->add_hook('usercp_do_attachments_start', 'attachmentmassdeletecontrol_attachment_delete');
Welches Szenario meinst du genau bei Punkt 1?
zu 1)
Selbst wenn die Templates bereinigt und die entsprechenden Elemente entfernt sind, kann man immer noch einen POST-Request mit allen nötigen Formular-Daten an den Webserver senden.
Das geht zum Beispiel, indem man mittels Entwicklertools des Browsers die entsprechenden input-Elemente wieder einbaut und das Formular absendet.
MyBB würde es weiterhin verarbeiten.
Daher besser die eigentliche Funktion im Code stilllegen.
[ETS]
Die Ausführung ist ja quasi duch die
hier gepostete Funktion still gelegt, wenn der ausführende User nicht zu einer Gruppe gehört, der das Löschen erlaubt ist.