diff options
Diffstat (limited to 'rt/share/html/REST')
27 files changed, 65 insertions, 38 deletions
diff --git a/rt/share/html/REST/1.0/Forms/attachment/default b/rt/share/html/REST/1.0/Forms/attachment/default index 3f9bd1b63..80039cee2 100644 --- a/rt/share/html/REST/1.0/Forms/attachment/default +++ b/rt/share/html/REST/1.0/Forms/attachment/default @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2012 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2013 Best Practical Solutions, LLC %# <sales@bestpractical.com> %# %# (Except where explicitly superseded by other copyright notices) @@ -67,8 +67,10 @@ unless ( $attachment->Id eq $id ) { my @arglist = split( '/', $args || "" ); my $content; -if ( @argslist and $arglist[0] eq 'content' ) { +if ( @arglist and $arglist[0] eq 'content' ) { $c = $attachment->OriginalContent; + $r->content_type($attachment->ContentType) + if $attachment->ContentType !~ /^text\//; } else { my @data; push @data, [ id => "attachment/" . $attachment->Id ]; diff --git a/rt/share/html/REST/1.0/Forms/group/customfields b/rt/share/html/REST/1.0/Forms/group/customfields index 70b50cceb..1dba6ccd8 100644 --- a/rt/share/html/REST/1.0/Forms/group/customfields +++ b/rt/share/html/REST/1.0/Forms/group/customfields @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2012 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2013 Best Practical Solutions, LLC %# <sales@bestpractical.com> %# %# (Except where explicitly superseded by other copyright notices) diff --git a/rt/share/html/REST/1.0/Forms/group/default b/rt/share/html/REST/1.0/Forms/group/default index 7686f2176..8867bf938 100644 --- a/rt/share/html/REST/1.0/Forms/group/default +++ b/rt/share/html/REST/1.0/Forms/group/default @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2012 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2013 Best Practical Solutions, LLC %# <sales@bestpractical.com> %# %# (Except where explicitly superseded by other copyright notices) diff --git a/rt/share/html/REST/1.0/Forms/group/ns b/rt/share/html/REST/1.0/Forms/group/ns index 2e15040c4..907324de5 100644 --- a/rt/share/html/REST/1.0/Forms/group/ns +++ b/rt/share/html/REST/1.0/Forms/group/ns @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2012 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2013 Best Practical Solutions, LLC %# <sales@bestpractical.com> %# %# (Except where explicitly superseded by other copyright notices) diff --git a/rt/share/html/REST/1.0/Forms/queue/customfields b/rt/share/html/REST/1.0/Forms/queue/customfields index 18b1222d2..9ebabb065 100644 --- a/rt/share/html/REST/1.0/Forms/queue/customfields +++ b/rt/share/html/REST/1.0/Forms/queue/customfields @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2012 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2013 Best Practical Solutions, LLC %# <sales@bestpractical.com> %# %# (Except where explicitly superseded by other copyright notices) diff --git a/rt/share/html/REST/1.0/Forms/queue/default b/rt/share/html/REST/1.0/Forms/queue/default index e6d50f311..58bb89953 100755 --- a/rt/share/html/REST/1.0/Forms/queue/default +++ b/rt/share/html/REST/1.0/Forms/queue/default @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2012 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2013 Best Practical Solutions, LLC %# <sales@bestpractical.com> %# %# (Except where explicitly superseded by other copyright notices) diff --git a/rt/share/html/REST/1.0/Forms/queue/ns b/rt/share/html/REST/1.0/Forms/queue/ns index 255af4c0b..3ea6bf261 100755 --- a/rt/share/html/REST/1.0/Forms/queue/ns +++ b/rt/share/html/REST/1.0/Forms/queue/ns @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2012 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2013 Best Practical Solutions, LLC %# <sales@bestpractical.com> %# %# (Except where explicitly superseded by other copyright notices) diff --git a/rt/share/html/REST/1.0/Forms/queue/ticketcustomfields b/rt/share/html/REST/1.0/Forms/queue/ticketcustomfields index abbfa8ea8..c38f3beb3 100644 --- a/rt/share/html/REST/1.0/Forms/queue/ticketcustomfields +++ b/rt/share/html/REST/1.0/Forms/queue/ticketcustomfields @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2012 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2013 Best Practical Solutions, LLC %# <sales@bestpractical.com> %# %# (Except where explicitly superseded by other copyright notices) diff --git a/rt/share/html/REST/1.0/Forms/ticket/attachments b/rt/share/html/REST/1.0/Forms/ticket/attachments index 43b8ed85a..ba3a24825 100755 --- a/rt/share/html/REST/1.0/Forms/ticket/attachments +++ b/rt/share/html/REST/1.0/Forms/ticket/attachments @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2012 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2013 Best Practical Solutions, LLC %# <sales@bestpractical.com> %# %# (Except where explicitly superseded by other copyright notices) diff --git a/rt/share/html/REST/1.0/Forms/ticket/comment b/rt/share/html/REST/1.0/Forms/ticket/comment index 35b543d9c..b50135fec 100755 --- a/rt/share/html/REST/1.0/Forms/ticket/comment +++ b/rt/share/html/REST/1.0/Forms/ticket/comment @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2012 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2013 Best Practical Solutions, LLC %# <sales@bestpractical.com> %# %# (Except where explicitly superseded by other copyright notices) @@ -56,6 +56,7 @@ use MIME::Entity; use LWP::MediaTypes; use RT::Interface::REST; use File::Temp qw(tempfile); +my @tmp_files; $RT::Logger->debug("Got ticket id=$id for comment"); $RT::Logger->debug("Got args @{[keys(%changes)]}."); @@ -89,7 +90,10 @@ if (!$changes{Text} && @atts == 0) { } my $cgi = $m->cgi_object; -my $ent = MIME::Entity->build(Type => "multipart/mixed"); +my $ent = MIME::Entity->build( + Type => "multipart/mixed", + 'X-RT-Interface' => 'REST', +); $ent->attach(Data => $changes{Text}) if $changes{Text}; my $i = 1; @@ -103,6 +107,7 @@ foreach my $att (@atts) { my $buf; my ($w, $tmp) = tempfile(); my $info = $cgi->uploadInfo($fh); + push @tmp_files, $tmp; while (sysread($fh, $buf, 8192)) { syswrite($w, $buf); @@ -148,5 +153,7 @@ if ($changes{Status}) { } OUTPUT: + +unlink @tmp_files; return [ $c, $o, $k, $e ]; </%INIT> diff --git a/rt/share/html/REST/1.0/Forms/ticket/default b/rt/share/html/REST/1.0/Forms/ticket/default index 016a50c73..0bced1e99 100755 --- a/rt/share/html/REST/1.0/Forms/ticket/default +++ b/rt/share/html/REST/1.0/Forms/ticket/default @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2012 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2013 Best Practical Solutions, LLC %# <sales@bestpractical.com> %# %# (Except where explicitly superseded by other copyright notices) @@ -167,7 +167,7 @@ else { elsif (lc $k eq 'text') { $text = delete $data{$k}; } - elsif ( lc $k ne 'id' ) { + elsif ( $k !~ /^(?:id|requestors)$/i ) { $e = 1; push @$o, $k; push(@comments, "# $k: Unknown field"); @@ -188,7 +188,8 @@ else { MIME::Entity->build( From => $session{CurrentUser}->EmailAddress, Subject => $v{Subject}, - Data => $text + Data => $text, + 'X-RT-Interface' => 'REST', ); } @@ -375,11 +376,18 @@ else { else { my $vals = $ticket->CustomFieldValues($cf->id); - if ( $cf->SingleValue ) { + if ( !defined $val || !length $val ) { + while ( my $val = $vals->Next ) { + ($n, $s) = $ticket->DeleteCustomFieldValue( + Field => $cf, ValueId => $val->id, + ); + $s =~ s/^# // if defined $s; + } + } + elsif ( $cf->SingleValue ) { my $old = $vals->Next; if ( $old ) { if ( $val ne $old->Content ) { - $old->Delete; ($n, $s) = $ticket->AddCustomFieldValue( Field => $cf, Value => $val ); $s =~ s/^# // if defined $s; @@ -433,7 +441,7 @@ else { $new{$c}--; } else { - $v->Delete(); + $ticket->DeleteCustomFieldValue( Field => $cf, ValueId => $v->id ); } } for ( @new ) { diff --git a/rt/share/html/REST/1.0/Forms/ticket/history b/rt/share/html/REST/1.0/Forms/ticket/history index 8b6e01722..ec4f08150 100755 --- a/rt/share/html/REST/1.0/Forms/ticket/history +++ b/rt/share/html/REST/1.0/Forms/ticket/history @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2012 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2013 Best Practical Solutions, LLC %# <sales@bestpractical.com> %# %# (Except where explicitly superseded by other copyright notices) diff --git a/rt/share/html/REST/1.0/Forms/ticket/links b/rt/share/html/REST/1.0/Forms/ticket/links index bf4f2575c..32e072457 100755 --- a/rt/share/html/REST/1.0/Forms/ticket/links +++ b/rt/share/html/REST/1.0/Forms/ticket/links @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2012 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2013 Best Practical Solutions, LLC %# <sales@bestpractical.com> %# %# (Except where explicitly superseded by other copyright notices) diff --git a/rt/share/html/REST/1.0/Forms/ticket/merge b/rt/share/html/REST/1.0/Forms/ticket/merge index a751dc558..db25bdfe2 100755 --- a/rt/share/html/REST/1.0/Forms/ticket/merge +++ b/rt/share/html/REST/1.0/Forms/ticket/merge @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2012 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2013 Best Practical Solutions, LLC %# <sales@bestpractical.com> %# %# (Except where explicitly superseded by other copyright notices) diff --git a/rt/share/html/REST/1.0/Forms/ticket/take b/rt/share/html/REST/1.0/Forms/ticket/take index 503ba55f0..e30cd84b6 100755 --- a/rt/share/html/REST/1.0/Forms/ticket/take +++ b/rt/share/html/REST/1.0/Forms/ticket/take @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2012 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2013 Best Practical Solutions, LLC %# <sales@bestpractical.com> %# %# (Except where explicitly superseded by other copyright notices) diff --git a/rt/share/html/REST/1.0/Forms/transaction/default b/rt/share/html/REST/1.0/Forms/transaction/default index 2e45f6707..2cc10d1aa 100644 --- a/rt/share/html/REST/1.0/Forms/transaction/default +++ b/rt/share/html/REST/1.0/Forms/transaction/default @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2012 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2013 Best Practical Solutions, LLC %# <sales@bestpractical.com> %# %# (Except where explicitly superseded by other copyright notices) diff --git a/rt/share/html/REST/1.0/Forms/user/default b/rt/share/html/REST/1.0/Forms/user/default index a5786bab3..c11263693 100755 --- a/rt/share/html/REST/1.0/Forms/user/default +++ b/rt/share/html/REST/1.0/Forms/user/default @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2012 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2013 Best Practical Solutions, LLC %# <sales@bestpractical.com> %# %# (Except where explicitly superseded by other copyright notices) diff --git a/rt/share/html/REST/1.0/Forms/user/ns b/rt/share/html/REST/1.0/Forms/user/ns index 0aca5de4d..161372493 100755 --- a/rt/share/html/REST/1.0/Forms/user/ns +++ b/rt/share/html/REST/1.0/Forms/user/ns @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2012 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2013 Best Practical Solutions, LLC %# <sales@bestpractical.com> %# %# (Except where explicitly superseded by other copyright notices) diff --git a/rt/share/html/REST/1.0/NoAuth/mail-gateway b/rt/share/html/REST/1.0/NoAuth/mail-gateway index 27c2ac6c1..dec5ce71f 100755 --- a/rt/share/html/REST/1.0/NoAuth/mail-gateway +++ b/rt/share/html/REST/1.0/NoAuth/mail-gateway @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2012 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2013 Best Practical Solutions, LLC %# <sales@bestpractical.com> %# %# (Except where explicitly superseded by other copyright notices) diff --git a/rt/share/html/REST/1.0/autohandler b/rt/share/html/REST/1.0/autohandler index ccca11235..b50bf6aac 100755 --- a/rt/share/html/REST/1.0/autohandler +++ b/rt/share/html/REST/1.0/autohandler @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2012 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2013 Best Practical Solutions, LLC %# <sales@bestpractical.com> %# %# (Except where explicitly superseded by other copyright notices) diff --git a/rt/share/html/REST/1.0/dhandler b/rt/share/html/REST/1.0/dhandler index a6fc89724..49a28c636 100755 --- a/rt/share/html/REST/1.0/dhandler +++ b/rt/share/html/REST/1.0/dhandler @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2012 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2013 Best Practical Solutions, LLC %# <sales@bestpractical.com> %# %# (Except where explicitly superseded by other copyright notices) @@ -62,7 +62,7 @@ my $object = $m->dhandler_arg; my $name = qr{[\w.-]+}; my $list = '(?:(?:\d+-)?\d+,)*(?:\d+-)?\d+'; -my $label = '[a-zA-Z0-9@_.+-]+'; +my $label = '[^,\\/]+'; my $field = RT::Interface::REST->field_spec; my $labels = "(?:$label,)*$label"; @@ -242,7 +242,7 @@ foreach $object (@objects) { $handler = "Forms/$type/$attr"; unless ($m->comp_exists($handler)) { - $args = "$attr/$args"; + $args = defined $args ? "$attr/$args" : $attr; $handler = "Forms/$type/default"; unless ($m->comp_exists($handler)) { diff --git a/rt/share/html/REST/1.0/logout b/rt/share/html/REST/1.0/logout index 660c12337..4ce4d8294 100755 --- a/rt/share/html/REST/1.0/logout +++ b/rt/share/html/REST/1.0/logout @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2012 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2013 Best Practical Solutions, LLC %# <sales@bestpractical.com> %# %# (Except where explicitly superseded by other copyright notices) @@ -46,6 +46,9 @@ %# %# END BPS TAGGED BLOCK }}} <%PERL> -tied(%session)->delete if keys %session; +if (keys %session) { + RT::Interface::Web::InstantiateNewSession(); + $session{CurrentUser} = RT::CurrentUser->new(); +} </%PERL> RT/<% $RT::VERSION %> 200 Ok diff --git a/rt/share/html/REST/1.0/search/dhandler b/rt/share/html/REST/1.0/search/dhandler index e1ddb9b13..677a632f6 100755 --- a/rt/share/html/REST/1.0/search/dhandler +++ b/rt/share/html/REST/1.0/search/dhandler @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2012 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2013 Best Practical Solutions, LLC %# <sales@bestpractical.com> %# %# (Except where explicitly superseded by other copyright notices) diff --git a/rt/share/html/REST/1.0/search/ticket b/rt/share/html/REST/1.0/search/ticket index 16c6c6a0d..a0e65d070 100755 --- a/rt/share/html/REST/1.0/search/ticket +++ b/rt/share/html/REST/1.0/search/ticket @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2012 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2013 Best Practical Solutions, LLC %# <sales@bestpractical.com> %# %# (Except where explicitly superseded by other copyright notices) diff --git a/rt/share/html/REST/1.0/ticket/comment b/rt/share/html/REST/1.0/ticket/comment index 768a4688b..475e3a88d 100755 --- a/rt/share/html/REST/1.0/ticket/comment +++ b/rt/share/html/REST/1.0/ticket/comment @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2012 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2013 Best Practical Solutions, LLC %# <sales@bestpractical.com> %# %# (Except where explicitly superseded by other copyright notices) @@ -55,6 +55,7 @@ use MIME::Entity; use LWP::MediaTypes; use RT::Interface::REST; use File::Temp qw(tempfile); +my @tmp_files; my $ticket = RT::Ticket->new($session{CurrentUser}); my $object = $r->path_info; @@ -106,7 +107,10 @@ if (!$k->{Text} && @atts == 0) { } my $cgi = $m->cgi_object; -my $ent = MIME::Entity->build(Type => "multipart/mixed"); +my $ent = MIME::Entity->build( + Type => "multipart/mixed", + 'X-RT-Interface' => 'REST', +); $ent->attach(Data => $k->{Text}) if $k->{Text}; my $i = 1; @@ -119,6 +123,7 @@ foreach my $att (@atts) { if ($fh) { my $buf; my ($w, $tmp) = tempfile(); + push @tmp_files, $tmp; my $info = $cgi->uploadInfo(); while (sysread($fh, $buf, 8192)) { @@ -171,6 +176,8 @@ if ($k->{Status}) { } OUTPUT: + +unlink @tmp_files; </%INIT> RT/<% $RT::VERSION %> <% $status %> diff --git a/rt/share/html/REST/1.0/ticket/link b/rt/share/html/REST/1.0/ticket/link index 8d3345fa0..0b8b50692 100755 --- a/rt/share/html/REST/1.0/ticket/link +++ b/rt/share/html/REST/1.0/ticket/link @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2012 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2013 Best Practical Solutions, LLC %# <sales@bestpractical.com> %# %# (Except where explicitly superseded by other copyright notices) diff --git a/rt/share/html/REST/1.0/ticket/merge b/rt/share/html/REST/1.0/ticket/merge index c7507a40b..98cbaf7e4 100755 --- a/rt/share/html/REST/1.0/ticket/merge +++ b/rt/share/html/REST/1.0/ticket/merge @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2012 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2013 Best Practical Solutions, LLC %# <sales@bestpractical.com> %# %# (Except where explicitly superseded by other copyright notices) |