diff options
Diffstat (limited to 'htetc')
| -rw-r--r-- | htetc/freeside-base1.99.conf | 24 | ||||
| -rw-r--r-- | htetc/freeside-base1.conf | 21 | ||||
| -rw-r--r-- | htetc/freeside-base2.conf | 24 | ||||
| -rw-r--r-- | htetc/freeside-rt.conf | 36 | ||||
| -rw-r--r-- | htetc/handler.pl | 108 | 
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; | 
