summaryrefslogtreecommitdiff
path: root/rt/share/html/NoAuth/iCal/dhandler
diff options
context:
space:
mode:
Diffstat (limited to 'rt/share/html/NoAuth/iCal/dhandler')
-rw-r--r--rt/share/html/NoAuth/iCal/dhandler122
1 files changed, 0 insertions, 122 deletions
diff --git a/rt/share/html/NoAuth/iCal/dhandler b/rt/share/html/NoAuth/iCal/dhandler
deleted file mode 100644
index 0eeeb20..0000000
--- a/rt/share/html/NoAuth/iCal/dhandler
+++ /dev/null
@@ -1,122 +0,0 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%#
-%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC
-%# <jesse@bestpractical.com>
-%#
-%# (Except where explicitly superseded by other copyright notices)
-%#
-%#
-%# LICENSE:
-%#
-%# This work is made available to you under the terms of Version 2 of
-%# the GNU General Public License. A copy of that license should have
-%# been provided with this software, but in any event can be snarfed
-%# from www.gnu.org.
-%#
-%# This work is distributed in the hope that it will be useful, but
-%# WITHOUT ANY WARRANTY; without even the implied warranty of
-%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-%# General Public License for more details.
-%#
-%# You should have received a copy of the GNU General Public License
-%# along with this program; if not, write to the Free Software
-%# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-%# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
-%#
-%#
-%# CONTRIBUTION SUBMISSION POLICY:
-%#
-%# (The following paragraph is not intended to limit the rights granted
-%# to you to modify and distribute this software under the terms of
-%# the GNU General Public License and is only of importance to you if
-%# you choose to contribute your changes and enhancements to the
-%# community by submitting them to Best Practical Solutions, LLC.)
-%#
-%# By intentionally submitting any modifications, corrections or
-%# derivatives to this work, or any other work intended for use with
-%# Request Tracker, to Best Practical Solutions, LLC, you confirm that
-%# you are the copyright holder for those contributions and you grant
-%# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable,
-%# royalty-free, perpetual, license to use, copy, create derivative
-%# works based on those contributions, and sublicense and distribute
-%# those contributions and any derivatives thereof.
-%#
-%# END BPS TAGGED BLOCK }}}
-<%init>
-use Data::ICal;
-use Data::ICal::Entry::Event;
-use Encode ();
-
-my $path = $m->dhandler_arg;
-
-my $notfound = sub {
- $r->headers_out->{'Status'} = '404 Not Found';
- $m->clear_and_abort;
-};
-
-$notfound->() unless $path =~ m!^([^/]+)/([^/]+)/(.*)(\.(ical|ics))?!;
-
-my ($name, $auth, $search) = ($1, $2, $3);
-# Unescape parts
-$_ =~ s/\%([0-9a-z]{2})/chr(hex($1))/gei for $name, $search;
-# convert to perl strings
-$_ = Encode::decode_utf8( $_ ) for $name, $search;
-
-my $user = RT::User->new( $RT::SystemUser );
-$user->Load( $name );
-$notfound->() unless $user->id;
-
-$notfound->() unless $user->ValidateAuthString( $auth, $search );
-
-my $cu = RT::CurrentUser->new;
-$cu->Load($user);
-my $tickets = RT::Tickets->new( $cu );
-$tickets->FromSQL($search);
-
-$r->headers_out->{'Content-Type'} = 'text/calendar; charset=utf-8';
-
-my $feed = Data::ICal->new();
-$feed->add_properties('x-wr-calname' => ["RT due dates" => {value => "TEXT"}]);
-$feed->add_properties('x-wr-caldesc' => ["Due dates for RT tickets: $search" => {value => "TEXT"}]);
-$feed->add_properties('calscale' => ['gregorian']);
-$feed->add_properties('method' => ['publish']);
-$feed->add_properties('prodid' => ["-//" . RT->Config->Get('rtname') ."//"]);
-
-while (my $t = $tickets->Next) {
- next unless $t->DueObj->Unix > 0;
-
- my $starttime = $t->StartsObj->Unix > 0 ? $t->StartsObj : $t->CreatedObj;
-
- my $now = RT::Date->new( $cu ); $now->SetToNow;
- my $start = Data::ICal::Entry::Event->new;
- my $end = Data::ICal::Entry::Event->new;
- $_->add_properties(
- url => RT->Config->Get('WebURL') . "?q=".$t->id,
- organizer => $t->OwnerObj->Name,
- dtstamp => $now->iCal,
- created => $t->CreatedObj->iCal,
- 'last-modified' => $t->LastUpdatedObj->iCal,
- ) for $start, $end;
-
- $start->add_properties(
- summary => "Start: ".$t->Subject,
- dtstart => [$starttime->iCal( Time => 0 ) => { value => 'DATE' }],
- dtend => [$starttime->iCal( Time => 0 ) => { value => 'DATE'}],
- );
- $end->add_properties(
- summary => "Due: ".$t->Subject,
- dtstart => [$t->DueObj->iCal( Time => 0 ) => { value => 'DATE' }],
- dtend => [$t->DueObj->iCal( Time => 0 ) => { value => 'DATE' }],
- );
-
- $feed->add_entry($start);
- $feed->add_entry($end);
-}
-
-$m->clear_buffer;
-$m->out($feed->as_string);
-$m->abort;
-</%init>