summaryrefslogtreecommitdiff
path: root/htetc
diff options
context:
space:
mode:
Diffstat (limited to 'htetc')
-rw-r--r--htetc/freeside-base1.99.conf24
-rw-r--r--htetc/freeside-base1.conf21
-rw-r--r--htetc/freeside-base2.conf24
-rw-r--r--htetc/freeside-rt.conf36
-rw-r--r--htetc/handler.pl108
5 files changed, 213 insertions, 0 deletions
diff --git a/htetc/freeside-base1.99.conf b/htetc/freeside-base1.99.conf
new file mode 100644
index 000000000..ce3c3f240
--- /dev/null
+++ b/htetc/freeside-base1.99.conf
@@ -0,0 +1,24 @@
+PerlModule Apache::compat
+
+#PerlModule Apache::DBI
+
+PerlModule HTML::Mason
+PerlSetVar MasonArgsMethod CGI
+PerlModule HTML::Mason::ApacheHandler
+
+PerlRequire "%%%MASON_HANDLER%%%"
+
+#Locale::SubCountry
+AddDefaultCharset ISO-8859-1
+
+<Directory %%%FREESIDE_DOCUMENT_ROOT%%%>
+AuthName Freeside
+AuthType Basic
+AuthUserFile %%%FREESIDE_CONF%%%/htpasswd
+require valid-user
+<Files ~ (\.cgi|\.html)>
+SetHandler perl-script
+PerlHandler HTML::Mason
+</Files>
+</Directory>
+
diff --git a/htetc/freeside-base1.conf b/htetc/freeside-base1.conf
new file mode 100644
index 000000000..7b8d9da68
--- /dev/null
+++ b/htetc/freeside-base1.conf
@@ -0,0 +1,21 @@
+#PerlModule Apache::DBI
+
+PerlModule HTML::Mason
+
+#Locale::SubCountry
+AddDefaultCharset ISO-8859-1
+
+<Directory %%%FREESIDE_DOCUMENT_ROOT%%%>
+AuthName Freeside
+AuthType Basic
+AuthUserFile %%%FREESIDE_CONF%%%/htpasswd
+require valid-user
+<Files ~ (\.cgi|\.html)>
+AddHandler perl-script .cgi .html
+PerlHandler HTML::Mason
+</Files>
+<Perl>
+require "%%%MASON_HANDLER%%%";
+</Perl>
+</Directory>
+
diff --git a/htetc/freeside-base2.conf b/htetc/freeside-base2.conf
new file mode 100644
index 000000000..1cd1cc550
--- /dev/null
+++ b/htetc/freeside-base2.conf
@@ -0,0 +1,24 @@
+PerlModule Apache2::compat
+
+#PerlModule Apache::DBI
+
+PerlModule HTML::Mason
+PerlSetVar MasonArgsMethod CGI
+PerlModule HTML::Mason::ApacheHandler
+
+PerlRequire "%%%MASON_HANDLER%%%"
+
+#Locale::SubCountry
+AddDefaultCharset ISO-8859-1
+
+<Directory %%%FREESIDE_DOCUMENT_ROOT%%%>
+AuthName Freeside
+AuthType Basic
+AuthUserFile %%%FREESIDE_CONF%%%/htpasswd
+require valid-user
+<Files ~ (\.cgi|\.html)>
+SetHandler perl-script
+PerlHandler HTML::Mason
+</Files>
+</Directory>
+
diff --git a/htetc/freeside-rt.conf b/htetc/freeside-rt.conf
new file mode 100644
index 000000000..9b5ccf807
--- /dev/null
+++ b/htetc/freeside-rt.conf
@@ -0,0 +1,36 @@
+<Directory %%%FREESIDE_DOCUMENT_ROOT%%%/rt/NoAuth>
+<Limit GET POST>
+allow from all
+Satisfy any
+SetHandler perl-script
+PerlHandler HTML::Mason
+</Limit>
+</Directory>
+
+<Directory %%%FREESIDE_DOCUMENT_ROOT%%%/rt/REST/1.0/NoAuth>
+<Limit GET POST>
+allow from all
+Satisfy any
+SetHandler perl-script
+PerlHandler HTML::Mason
+</Limit>
+</Directory>
+
+<DirectoryMatch "^%%%FREESIDE_DOCUMENT_ROOT%%%/rt/.*NoAuth/images">
+SetHandler None
+</DirectoryMatch>
+
+<Directory %%%FREESIDE_DOCUMENT_ROOT%%%/rt/Ticket/Attachment>
+SetHandler perl-script
+PerlHandler HTML::Mason
+</Directory>
+
+<Directory %%%FREESIDE_DOCUMENT_ROOT%%%/rt/Search>
+SetHandler perl-script
+PerlHandler HTML::Mason
+</Directory>
+
+<DirectoryMatch "^%%%FREESIDE_DOCUMENT_ROOT%%%/rt/RTx/Statistics/.*/Elements>
+SetHandler perl-script
+PerlHandler HTML::Mason
+</DirectoryMatch>
diff --git a/htetc/handler.pl b/htetc/handler.pl
new file mode 100644
index 000000000..952d6203b
--- /dev/null
+++ b/htetc/handler.pl
@@ -0,0 +1,108 @@
+#!/usr/bin/perl
+
+package HTML::Mason;
+
+use strict;
+use warnings;
+use FS::Mason qw( mason_interps );
+
+#use vars qw($r);
+
+# Bring in ApacheHandler, necessary for mod_perl integration.
+# Uncomment the second line (and comment the first) to use
+# Apache::Request instead of CGI.pm to parse arguments.
+use HTML::Mason::ApacheHandler;
+# use HTML::Mason::ApacheHandler (args_method=>'mod_perl');
+
+###use Module::Refresh;###
+
+# Create Mason objects
+
+my( $fs_interp, $rt_interp ) = mason_interps('apache');
+
+my $ah = new HTML::Mason::ApacheHandler (
+ interp => $fs_interp,
+ request_class => 'FS::Mason::Request',
+ args_method => 'CGI', #(and FS too)
+);
+
+# Activate the following if running httpd as root (the normal case).
+# Resets ownership of all files created by Mason at startup.
+#
+#chown (Apache->server->uid, Apache->server->gid, $interp->files_written);
+
+sub handler
+{
+ #($r) = @_;
+ my $r = shift;
+
+ # If you plan to intermix images in the same directory as
+ # components, activate the following to prevent Mason from
+ # evaluating image files as components.
+ #
+ #return -1 if $r->content_type && $r->content_type !~ m|^text/|i;
+
+ ###Module::Refresh->refresh;###
+
+ #$r->content_type('text/html; charset=utf-8');
+ $r->content_type('text/html; charset=iso-8859-1');
+ #eorar
+
+ my $headers = $r->headers_out;
+ $headers->{'Cache-control'} = 'no-cache';
+ #$r->no_cache(1);
+ $headers->{'Expires'} = '0';
+
+# $r->send_http_header;
+
+ if ( $r->filename =~ /\/rt\// ) { #RT
+
+ $ah->interp($rt_interp);
+
+ local $SIG{__WARN__};
+ local $SIG{__DIE__};
+
+ RT::Init();
+
+ # We don't need to handle non-text, non-xml items
+ return -1 if defined( $r->content_type )
+ && $r->content_type !~ m!(^text/|\bxml\b)!io;
+
+ } else {
+
+ local $SIG{__WARN__};
+ local $SIG{__DIE__};
+
+ RT::Init() if $RT::VERSION; #for lack of something else
+
+ #we don't want the RT error handlers under FS
+ undef $SIG{__WARN__} if defined($SIG{__WARN__});
+ undef $SIG{__DIE__} if defined($SIG{__DIE__} );
+
+ $ah->interp($fs_interp);
+
+ }
+
+ my %session;
+ my $status;
+ eval { $status = $ah->handle_request($r); };
+#!!
+# if ( $@ ) {
+# $RT::Logger->crit($@);
+# }
+ warn $@ if $@;
+
+ 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"
+# );
+# }
+
+ $status;
+}
+
+1;