+++ /dev/null
---#!/usr/bin/perl
---# BEGIN LICENSE BLOCK
---#
---# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com>
---#
---# (Except where explictly superceded by other copyright notices)
---#
---# 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.
---#
---# Unless otherwise specified, all modifications, corrections or
---# extensions to this work which alter its source code become the
---# property of Best Practical Solutions, LLC when submitted for
---# inclusion in the work.
---#
---#
---# END LICENSE BLOCK
---
---use strict;
---
---BEGIN {
--- $ENV{'PATH'} = '/bin:/usr/bin'; # or whatever you need
--- $ENV{'CDPATH'} = '' if defined $ENV{'CDPATH'};
--- $ENV{'SHELL'} = '/bin/sh' if defined $ENV{'SHELL'};
--- $ENV{'ENV'} = '' if defined $ENV{'ENV'};
--- $ENV{'IFS'} = '' if defined $ENV{'IFS'};
--
---}
---
---use lib ("/opt/rt3/local/lib", "/opt/rt3/lib");
---use RT;
---
---package RT::Mason;
---
---use CGI qw(-private_tempfiles); #bring this in before mason, to make sure we
--- #set private_tempfiles
---
---BEGIN {
-- if ($mod_perl::VERSION >= 1.9908) {
-- require Apache::RequestUtil;
-- no warnings 'redefine';
-- my $sub = *Apache::request{CODE};
-- *Apache::request = sub {
-- my $r;
-- eval { $r = $sub->('Apache'); };
-- # warn $@ if $@;
-- return $r;
-- };
-- }
--- if ($CGI::MOD_PERL) {
--- require HTML::Mason::ApacheHandler;
--- }
--- else {
--- require HTML::Mason::CGIHandler;
--- }
---}
---
---use HTML::Mason; # brings in subpackages: Parser, Interp, etc.
---
---use vars qw($Nobody $SystemUser $r);
---
---#This drags in RT's config.pm
---RT::LoadConfig();
---
---use Carp;
---
---{
--- package HTML::Mason::Commands;
--- use vars qw(%session);
---
--- use RT::Tickets;
--- use RT::Transactions;
--- use RT::Users;
--- use RT::CurrentUser;
--- use RT::Templates;
--- use RT::Queues;
--- use RT::ScripActions;
--- use RT::ScripConditions;
--- use RT::Scrips;
--- use RT::Groups;
--- use RT::GroupMembers;
--- use RT::CustomFields;
--- use RT::CustomFieldValues;
--- use RT::TicketCustomFieldValues;
---
--- use RT::Interface::Web;
--- use MIME::Entity;
--- use Text::Wrapper;
--- use CGI::Cookie;
--- use Time::ParseDate;
--- use HTML::Entities;
---}
---
---
---# Activate the following if running httpd as root (the normal case).
---# Resets ownership of all files created by Mason at startup.
---# Note that mysql uses DB for sessions, so there's no need to do this.
---unless ($RT::DatabaseType =~ /(mysql|Pg)/) {
--- # Clean up our umask to protect session files
--- umask(0077);
---
---if ( $CGI::MOD_PERL) {
--- chown( Apache->server->uid, Apache->server->gid, [$RT::MasonSessionDir] )
--- if Apache->server->can('uid');
--- }
--- # Die if WebSessionDir doesn't exist or we can't write to it
--- stat($RT::MasonSessionDir);
--- die "Can't read and write $RT::MasonSessionDir"
--- unless ( ( -d _ ) and ( -r _ ) and ( -w _ ) );
---}
---
-- my $ah = &RT::Interface::Web::NewApacheHandler(@RT::MasonParameters) if $CGI::MOD_PERL;
-my $ah = &RT::Interface::Web::NewApacheHandler() if $CGI::MOD_PERL;
---
---sub handler {
--- ($r) = @_;
--
-- local $SIG{__WARN__};
-- local $SIG{__DIE__};
---
--- RT::Init();
---
--- # We don't need to handle non-text items
--- return -1 if defined( $r->content_type ) && $r->content_type !~ m|^text/|io;
---
--- my %session;
-- my $status;
-- eval { $status = $ah->handle_request($r) };
-- if ($@) {
-- $RT::Logger->crit($@);
-- }
--
- my $status = $ah->handle_request($r);
--- undef (%session);
---
-- if ($RT::Handle->TransactionDepth) {
-- $RT::Handle->ForceRollback;
-- $RT::Logger->crit("Transaction not committed. Usually indicates a software fault. Data loss may have occurred") ;
-- }
- $RT::Logger->crit("Transaction not committed. Usually indicates a software fault. Data loss may have occurred") if $RT::Handle->TransactionDepth;
--- return $status;
---}
---
---1;