From a9a869f8e20ecfbeafeb8020ad4c1e86b60aa21a Mon Sep 17 00:00:00 2001 From: Max Kanat-Alexander Date: Fri, 2 Apr 2010 14:00:18 -0700 Subject: Bug 556869: New Hook: object_before_delete r=mkanat, a=mkanat (module owner) --- Bugzilla/Hook.pm | 19 +++++++++++++++++++ Bugzilla/Object.pm | 1 + 2 files changed, 20 insertions(+) (limited to 'Bugzilla') diff --git a/Bugzilla/Hook.pm b/Bugzilla/Hook.pm index b8d763d20..7f85e70d8 100644 --- a/Bugzilla/Hook.pm +++ b/Bugzilla/Hook.pm @@ -704,6 +704,25 @@ A hashref. The set of named parameters passed to C. =back + +=head2 object_before_delete + +This happens in L, after we've confirmed +that the object can be deleted, but before any rows have actually +been removed from the database. This sometimes occurs inside a database +transaction. + +Params: + +=over + +=item C - The L being deleted. You will probably +want to check its type like C<< $object->isa('Some::Class') >> before doing +anything with it. + +=back + + =head2 object_before_set Called during L, before any actual work is done. diff --git a/Bugzilla/Object.pm b/Bugzilla/Object.pm index e50be1fbf..2477244df 100644 --- a/Bugzilla/Object.pm +++ b/Bugzilla/Object.pm @@ -383,6 +383,7 @@ sub update { sub remove_from_db { my $self = shift; + Bugzilla::Hook::process('object_before_delete', { object => $self }); my $table = $self->DB_TABLE; my $id_field = $self->ID_FIELD; Bugzilla->dbh->do("DELETE FROM $table WHERE $id_field = ?", -- cgit v1.2.3-24-g4f1b