Commit ba956f07 authored by lpsolit%gmail.com's avatar lpsolit%gmail.com

Bug 413222: Implement $attachment->remove_from_db - Patch by Fré©ric Buclin…

Bug 413222: Implement $attachment->remove_from_db - Patch by Fré©ric Buclin <LpSolit@gmail.com> a=LpSolit
parent 2d59048f
......@@ -758,8 +758,6 @@ Params: C<$bug> - Bugzilla::Bug object - the bug for which to insert
Returns: the ID of the new attachment.
=back
=cut
sub insert_attachment_for_bug {
......@@ -932,4 +930,30 @@ sub insert_attachment_for_bug {
return $attachment;
}
=pod
=item C<remove_from_db()>
Description: removes an attachment from the DB.
Params: none
Returns: nothing
=back
=cut
sub remove_from_db {
my $self = shift;
my $dbh = Bugzilla->dbh;
$dbh->bz_start_transaction();
$dbh->do('DELETE FROM flags WHERE attach_id = ?', undef, $self->id);
$dbh->do('DELETE FROM attach_data WHERE id = ?', undef, $self->id);
$dbh->do('UPDATE attachments SET mimetype = ?, ispatch = ?, isurl = ?, isobsolete = ?
WHERE attach_id = ?', undef, ('text/plain', 0, 0, 1, $self->id));
$dbh->bz_commit_transaction();
}
1;
......@@ -649,19 +649,11 @@ sub delete_attachment {
$template->process("attachment/delete_reason.txt.tmpl", $vars, \$msg)
|| ThrowTemplateError($template->error());
$dbh->bz_start_transaction();
$dbh->do('DELETE FROM attach_data WHERE id = ?', undef, $attachment->id);
$dbh->do('UPDATE attachments SET mimetype = ?, ispatch = ?, isurl = ?,
isobsolete = ?
WHERE attach_id = ?', undef,
('text/plain', 0, 0, 1, $attachment->id));
$dbh->do('DELETE FROM flags WHERE attach_id = ?', undef, $attachment->id);
$dbh->bz_commit_transaction();
# If the attachment is stored locally, remove it.
if (-e $attachment->_get_local_filename) {
unlink $attachment->_get_local_filename;
}
$attachment->remove_from_db();
# Now delete the token.
delete_token($token);
......
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