mirror of
https://github.com/Combodo/iTop.git
synced 2026-04-22 01:58:47 +02:00
N°7080 - EVENT_DB_LINKS_CHANGED not fired when deleting a user
This commit is contained in:
@@ -5960,7 +5960,6 @@ JS
|
||||
final protected function FireEventAfterDelete(): void
|
||||
{
|
||||
$this->NotifyAttachedObjectsOnLinkClassModification();
|
||||
$this->FireEventDbLinksChangedForCurrentObject();
|
||||
$this->FireEvent(EVENT_DB_AFTER_DELETE);
|
||||
}
|
||||
|
||||
@@ -6101,10 +6100,7 @@ JS
|
||||
MetaModel::StartReentranceProtection($oObject);
|
||||
$oObject->FireEvent(EVENT_DB_LINKS_CHANGED);
|
||||
MetaModel::StopReentranceProtection($oObject);
|
||||
|
||||
// Use IsNew() === true when object is deleted
|
||||
// new objects are already saved at this point (so IsNeww() will return false in this case)
|
||||
if (!$oObject->IsNew() && count($oObject->ListChanges()) !== 0) {
|
||||
if (count($oObject->ListChanges()) !== 0) {
|
||||
$oObject->DBUpdate();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4278,11 +4278,6 @@ abstract class DBObject implements iDisplay
|
||||
/** @var \DBObject $oToDelete */
|
||||
$oToDelete = $aData['to_delete'];
|
||||
|
||||
if ($oToDelete === $this) {
|
||||
// Skip current object to delete it at the end
|
||||
continue;
|
||||
}
|
||||
|
||||
// The deletion based on a deletion plan should not be done for each object if the deletion plan is common (Trac #457)
|
||||
// because for each object we would try to update all the preceding ones... that are already deleted
|
||||
// A better approach would be to change the API to apply the DBDelete on the deletion plan itself... just once
|
||||
@@ -4301,14 +4296,6 @@ abstract class DBObject implements iDisplay
|
||||
}
|
||||
}
|
||||
|
||||
$this->AddCurrentObjectInCrudStack('DELETE');
|
||||
try {
|
||||
$this->DBDeleteSingleObject();
|
||||
}
|
||||
finally {
|
||||
$this->RemoveCurrentObjectInCrudStack();
|
||||
}
|
||||
|
||||
foreach ($oDeletionPlan->ListUpdates() as $sClass => $aToUpdate) {
|
||||
foreach ($aToUpdate as $aData) {
|
||||
$oToUpdate = $aData['to_reset'];
|
||||
|
||||
@@ -134,11 +134,6 @@ class _Ticket extends cmdbAbstractObject
|
||||
|
||||
public function UpdateImpactedItems()
|
||||
{
|
||||
if ($this->IsNew() && ($this->GetKey() > 0)) {
|
||||
// deleted ticket
|
||||
return;
|
||||
}
|
||||
|
||||
require_once(APPROOT.'core/displayablegraph.class.inc.php');
|
||||
/** @var ormLinkSet $oContactsSet */
|
||||
$oContactsSet = $this->Get('contacts_list');
|
||||
|
||||
@@ -423,8 +423,8 @@ class CRUDEventTest extends ItopDataTestCase
|
||||
// 1 delete for UserRequest, 3 delete for lnkFunctionalCIToTicket
|
||||
$this->assertEquals(4, self::$aEventCalls[EVENT_DB_CHECK_TO_DELETE]);
|
||||
$this->assertEquals(4, self::$aEventCalls[EVENT_DB_AFTER_DELETE]);
|
||||
$this->assertEquals(1, self::$aEventCalls[EVENT_DB_LINKS_CHANGED] ?? 0);
|
||||
$this->assertEquals(9, self::$iEventCalls);
|
||||
$this->assertArrayNotHasKey(EVENT_DB_LINKS_CHANGED, self::$aEventCalls, 'no relation with the with_php_compute attribute !');
|
||||
$this->assertEquals(8, self::$iEventCalls);
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user