Commit a9a869f8 authored by Max Kanat-Alexander's avatar Max Kanat-Alexander

Bug 556869: New Hook: object_before_delete

r=mkanat, a=mkanat (module owner)
parent 07f947c9
......@@ -704,6 +704,25 @@ A hashref. The set of named parameters passed to C<create>.
=back
=head2 object_before_delete
This happens in L<Bugzilla::Object/remove_from_db>, 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<object> - The L<Bugzilla::Object> 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<Bugzilla::Object/set>, before any actual work is done.
......
......@@ -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 = ?",
......
......@@ -354,6 +354,18 @@ sub object_before_create {
}
}
sub object_before_delete {
my ($self, $args) = @_;
my $object = $args->{'object'};
# Note that this is a made-up class, for this example.
if ($object->isa('Bugzilla::ExampleObject')) {
my $id = $object->id;
warn "An object with id $id is about to be deleted!";
}
}
sub object_before_set {
my ($self, $args) = @_;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment