chg: [behavior:notifyAdmin] Small refactor to better handle deletions

pull/121/head
Sami Mokaddem 2022-10-27 11:07:21 +02:00
parent 225913f9c6
commit dde7bbe75f
No known key found for this signature in database
GPG Key ID: 164C473F627A06FA
1 changed files with 14 additions and 1 deletions

View File

@ -19,10 +19,15 @@ class NotifyAdminsBehavior extends Behavior
{
/** @var array */
protected $_defaultConfig = [
'implementedEvents' => [
'Model.afterSave' => 'afterSave',
'Model.afterDelete' => 'afterDelete',
'Model.beforeDelete' => 'beforeDelete',
],
'implementedMethods' => [
'notifySiteAdmins' => 'notifySiteAdmins',
'notifySiteAdminsForEntity' => 'notifySiteAdminsForEntity',
]
],
];
/** @var AuditLog|null */
@ -50,6 +55,13 @@ class NotifyAdminsBehavior extends Behavior
$this->notifySiteAdminsForEntityChange($entity);
}
public function beforeDelete(EventInterface $event, EntityInterface $entity, ArrayObject $options): void
{
if ($entity->table()->hasBehavior('MetaFields') && !isset($entity->meta_fields)) {
$entity = $entity->table()->loadInto($entity, ['MetaFields']);
}
}
public function afterDelete(EventInterface $event, EntityInterface $entity, ArrayObject $options): void
{
if (!$this->isNotificationAllowed($event, $entity, $options)) {
@ -114,6 +126,7 @@ class NotifyAdminsBehavior extends Behavior
unset($changedFields['meta_fields']);
}
}
$originalFields = $entity->isNew() ? [] : $entity->isNew();
$data = [
'original' => $this->_serializeFields($originalFields),
'changed' => $this->_serializeFields($changedFields),