[rt-users] custom callback for ticket update not working after update 4.0.2 -> 4.2.2

Hugo Escobar hescobar at afslc.com
Wed Feb 5 12:32:20 EST 2014


On Wed, Feb 5, 2014 at 10:23 AM, Kevin Falcone <falcone at bestpractical.com>wrote:

> On Tue, Feb 04, 2014 at 04:02:05PM -0500, Hugo Escobar wrote:
> >    $m->callback( Ticket => $TicketObj, ARGSRef => \%ARGS, checks_failure
> => \$checks_failure,
> >    results => \@results, CallbackName => 'Initial' );
> >
> >    which exists at the beginning of the <%INIT> section
> >    My implementation of this callback creates a MIME::Entity and adds
> the file to it, then it
> >    'writes' the whole message to $session{'Attachments'}
> >
> >    I've been trying to do the right changes for this to work under 4.2.2
> but no luck so far
>
> You've not shown your code, so I'm guessing, but if you look at how
> 4.2 stores attachments in the session, it uses a token to finally fix
> the bug of creating two tickets simultaneously and accidentally
> attaching the wrong attachments to the wrong ticket.
>
> $session{Attachments}{$ARGS{Token}}
>
> Relevant code is in ProcessAttachments and you can also see it used in
> CreateTicket.
>

This is what I do:

        my $Message = MIME::Entity->build(
            Type            => 'multipart/mixed',
            "Message-Id"     => RT::Interface::Email::GenMessageId,
        );

        my ( $filehandle, @ar_content, $buffer );
        open( $filehandle, "<", \$content );
        while ( my $bytesread = read( $filehandle, $buffer, 4096 ) ) {
            push @ar_content, $buffer;
        }
        close $filehandle;

        $Message->attach(
            Filename => $doc_path,
            Type     => 'application/pdf',
            Data     => \@ar_content,
        );

        # Attachment parts really shouldn't get a Message-ID
        $Message->head->delete('Message-ID');
        $Message->make_singlepart;
        RT::I18N::SetMIMEEntityToUTF8($Message);    # convert text parts
into utf-8

        $session{'Attachments'} = {
            %{$session{'Attachments'} || {}},
                $key . '.pdf' => $Message
        };

        (...)

I changed the blue lines by the following:

session{'Attachments'}{Digest::MD5::md5_hex(rand(1024))}{$key . '.pdf'} =
$Message;

The reason I create a token here is that at this point
('/Ticket/Display.html') there seems to be no 'Attachment' in $session

The problem persists, post added without attachment

-- 
Hugo Escobar


[image: AFS_logo.png]

Follow us on Facebook and Linked-In

[image: facebook-24x24.png]<http://www.facebook.com/pages/Miami-FL/ASSOCIATION-FINANCIAL/64952991864>
 [image: linkedin-24x24.png] <http://www.linkedin.com/companies/1006276>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.bestpractical.com/pipermail/rt-users/attachments/20140205/accdff2c/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: AFS_logo.png
Type: image/png
Size: 3183 bytes
Desc: not available
URL: <http://lists.bestpractical.com/pipermail/rt-users/attachments/20140205/accdff2c/attachment.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: facebook-24x24.png
Type: image/png
Size: 814 bytes
Desc: not available
URL: <http://lists.bestpractical.com/pipermail/rt-users/attachments/20140205/accdff2c/attachment-0001.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: linkedin-24x24.png
Type: image/png
Size: 875 bytes
Desc: not available
URL: <http://lists.bestpractical.com/pipermail/rt-users/attachments/20140205/accdff2c/attachment-0002.png>


More information about the rt-users mailing list