- Betroffene Version
- WoltLab Suite 5.3
Hallo,
ich möchte gerne eigenen Code ausführen, bevor oder nachdem ein Benutzer gelöscht wird.
Mein Ansatz hierfür ist es, einen Event Listener zu registrieren:
Code
<eventlistener name="myUserDeletion">
<eventclassname>wcf\data\user\UserAction</eventclassname>
<eventname>initializeAction</eventname>
<listenerclassname>system\event\listener\MyUserDeletionListener</listenerclassname>
<inherit>0</inherit>
<environment>all</environment>
</eventlistener>
Mit dieser Klasse:
Code
class MyUserDeletionListener implements IParameterizedEventListener
{
/**
* @inheritDoc
*/
public function execute(/** @var UserAction */ $eventObj, $className, $eventName, array &$parameters)
{
if ('delete' !== $eventName) {
return;
}
// USER IS GOING TO BE DELETED
die('TEST: ' . print_r($parameters));
}
}
Alles anzeigen
Nach meinem Verständnis müsste doch der Listener mit "initializeAction" vor der Löschung oder aber mit "finalizeAction" nach der Aktion aufgerufen werden.
Allerdings wird bei einem Test mit "initializeAction" die Löschung durchgeführt, ohne dass der Listener aufgerufen wird.
Was übersehe ich hier?