<?php
namespace App\EventSubscriber;
use Pimcore\Db;
use Pimcore\Event\Model\DataObjectEvent;
use Pimcore\Model\DataObject\PublicUser;
class ObjectDeleteListener
{
public function onPreDelete(DataObjectEvent $user)
{
$deletedObject = $user->getObject();
// Check if the deleted element is an instance of AbstractObject
if ($deletedObject instanceof PublicUser) {
// Perform SQL operations to delete permissions from your custom SQL table
$this->deletePermissions($deletedObject);
}
}
private function deletePermissions( $deletedObject)
{
// Implement your logic to delete permissions from the SQL table
// You can use standard SQL queries or an ORM if you are using one
$db = Db::get();
$db->executeUpdate("DELETE FROM `user_policy` WHERE user_id = ? AND is_allowed = 1", [$deletedObject->getId()]);
}
}