5.7.2. Bugzilla::Attachment

5.7.2.1. NAME

Bugzilla::Attachment - Bugzilla attachment class.

5.7.2.2. SYNOPSIS

use Bugzilla::Attachment;

# Get the attachment with the given ID.
my $attachment = new Bugzilla::Attachment($attach_id);

# Get the attachments with the given IDs.
my $attachments = Bugzilla::Attachment->new_from_list($attach_ids);

5.7.2.3. DESCRIPTION

Attachment.pm represents an attachment object. It is an implementation of Bugzilla::Object, and thus provides all methods that Bugzilla::Object provides.

The methods that are specific to Bugzilla::Attachment are listed below.

Instance Properties

  • bug_id
the ID of the bug to which the attachment is attached
  • bug
the bug object to which the attachment is attached
  • description
user-provided text describing the attachment
  • contenttype
the attachment’s MIME media type
  • attacher
the user who attached the attachment
  • attached
the date and time on which the attacher attached the attachment
  • modification_time
the date and time on which the attachment was last modified.
  • filename
the name of the file the attacher attached
  • ispatch
whether or not the attachment is a patch
  • isobsolete
whether or not the attachment is obsolete
  • isprivate
whether or not the attachment is private
  • is_viewable
Returns 1 if the attachment has a content-type viewable in this browser. Note that we don’t use $cgi->Accept()’s ability to check if a content-type matches, because this will return a value even if it’s matched by the generic */* which most browsers add to the end of their Accept: headers.
  • data
the content of the attachment
  • datasize
the length (in bytes) of the attachment content
  • flags
flags that have been set on the attachment
  • flag_types
Return all flag types available for this attachment as well as flags already set, grouped by flag type.

Class Methods

  • get_attachments_by_bug($bug)
Description: retrieves and returns the attachments the currently logged in
user can view for the given bug.
Params: $bug - Bugzilla::Bug object - the bug for which
to retrieve and return attachments.

Returns: a reference to an array of attachment objects.

  • validate_can_edit
Description: validates if the user is allowed to view and edit the attachment.
Only the submitter or someone with editbugs privs can edit it. Only the submitter and users in the insider group can view private attachments.

Params: none

Returns: 1 on success, 0 otherwise.

  • validate_obsolete($bug, $attach_ids)
Description: validates if attachments the user wants to mark as obsolete
really belong to the given bug and are not already obsolete. Moreover, a user cannot mark an attachment as obsolete if they cannot view it (due to restrictions on it).
Params: $bug - The bug object obsolete attachments should belong to.
$attach_ids - The list of attachments to mark as obsolete.
Returns: The list of attachment objects to mark as obsolete.
Else an error is thrown.
  • create

Description: inserts an attachment into the given bug.

Params: takes a hashref with the following keys:
bug - Bugzilla::Bug object - the bug for which to insert the attachment. data - Either a filehandle pointing to the content of the attachment, or the content of the attachment itself. description - string - describe what the attachment is about. filename - string - the name of the attachment (used by the browser when downloading it). If the attachment is a URL, this parameter has no effect. mimetype - string - a valid MIME type. creation_ts - string (optional) - timestamp of the insert as returned by SELECT LOCALTIMESTAMP(0). ispatch - boolean (optional, default false) - true if the attachment is a patch. isprivate - boolean (optional, default false) - true if the attachment is private.

Returns: The new attachment object.

  • remove_from_db()

Description: removes an attachment from the DB.

Params: none

Returns: nothing

5.7.2.4. Methods in need of POD

  • set_filename
  • set_is_obsolete
  • DB_COLUMNS
  • set_is_private
  • set_content_type
  • set_description
  • get_content_type
  • set_flags
  • set_is_patch
  • update

This documentation undoubtedly has bugs; if you find some, please file them here.