diff --git a/library/Director/Objects/DirectorActivityLog.php b/library/Director/Objects/DirectorActivityLog.php index 799b1420..3e8ab372 100644 --- a/library/Director/Objects/DirectorActivityLog.php +++ b/library/Director/Objects/DirectorActivityLog.php @@ -80,12 +80,13 @@ class DirectorActivityLog extends DbObject public static function logRemoval(DbObject $object, Db $db) { + $plain = $object->getCachedUnmodifiedObject(); $data = array( - 'object_name' => $object->object_name, + 'object_name' => $plain->object_name, 'action_name' => 'delete', 'author' => self::username(), 'object_type' => $object->getTableName(), - 'old_properties' => json_encode($object->getPlainUnmodifiedObject()), + 'old_properties' => json_encode($plain), 'change_time' => date('Y-m-d H:i:s'), // TODO -> postgres! 'parent_checksum' => $db->getLastActivityChecksum() ); diff --git a/library/Director/Objects/IcingaObject.php b/library/Director/Objects/IcingaObject.php index fcb1c21a..1ccf6e26 100644 --- a/library/Director/Objects/IcingaObject.php +++ b/library/Director/Objects/IcingaObject.php @@ -1082,6 +1082,16 @@ abstract class IcingaObject extends DbObject implements IcingaConfigRenderer return $this; } + public function beforeDelete() + { + $this->cachedPlainUnmodified = $this->getPlainUnmodifiedObject(); + } + + public function getCachedUnmodifiedObject() + { + return $this->cachedPlainUnmodified; + } + public function onDelete() { DirectorActivityLog::logRemoval($this, $this->connection); @@ -1650,6 +1660,11 @@ abstract class IcingaObject extends DbObject implements IcingaConfigRenderer return $params; } + public function getOnDeleteUrl() + { + return 'director/' . strtolower($this->getShortTableName()) . 's'; + } + public function toJson( $resolved = false, $skipDefaults = false,