chg: [behavior:notifyAdmin] Small refactor to better handle deletions
parent
225913f9c6
commit
dde7bbe75f
|
@ -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),
|
||||
|
|
Loading…
Reference in New Issue