Beiträge: 451
Themen: 87
Registriert seit: 07.04.2014
11.06.2024, 16:04
(Dieser Beitrag wurde zuletzt bearbeitet: 11.06.2024, 16:04 von schauan.)
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 ...
PHP Version 8.2.22 (Test: 8.2.22)
MySQLi Version 5.7.42 (Test: 8.0.36)
Mybb Version 1.8.38 (Test: 1.8.38)
(Stand 09/2024)
Grüße, André
Beiträge: 1.401
Themen: 25
Registriert seit: 11.10.2013
MyBB-Version: 1.8.*
11.06.2024, 16:29
(Dieser Beitrag wurde zuletzt bearbeitet: 11.06.2024, 17:08 von SvePu.)
Freut mich, dass es dir weiterhilft.
Beiträge: 1.737
Themen: 22
Registriert seit: 18.02.2017
MyBB-Version: 1.8.*
sehr nützliches Plugin SvePu!
Kein Support per PN, Mail, Telefon, Hausbesuch, Discord, Telegram, WhatsApp und anderen nutzlosen Tools
Beiträge: 837
Themen: 8
Registriert seit: 08.02.2016
MyBB-Version: 1.8.38
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]
Beiträge: 1.401
Themen: 25
Registriert seit: 11.10.2013
MyBB-Version: 1.8.*
12.06.2024, 15:32
(Dieser Beitrag wurde zuletzt bearbeitet: 12.06.2024, 15:42 von SvePu.)
(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.
Beiträge: 837
Themen: 8
Registriert seit: 08.02.2016
MyBB-Version: 1.8.38
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]
Beiträge: 1.401
Themen: 25
Registriert seit: 11.10.2013
MyBB-Version: 1.8.*
12.06.2024, 17:03
(Dieser Beitrag wurde zuletzt bearbeitet: 12.06.2024, 17:07 von SvePu.)
(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?
Beiträge: 837
Themen: 8
Registriert seit: 08.02.2016
MyBB-Version: 1.8.38
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]
Beiträge: 1.401
Themen: 25
Registriert seit: 11.10.2013
MyBB-Version: 1.8.*
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.