fixing session timeout bug
[Evergreen.git] / Open-ILS / src / perlmods / OpenILS / WWW / Reporter.pm
index 64b786a..95b79b0 100644 (file)
@@ -1,14 +1,17 @@
 package OpenILS::WWW::Reporter;
 use strict; use warnings;
 
+use vars qw/$dtype_xform_map $dtype_xform/;
+
 use Apache2 ();
 use Apache2::Log;
-use Apache2::Const -compile => qw(OK REDIRECT :log);
+use Apache2::Const -compile => qw(OK REDIRECT DECLINED :log);
 use APR::Const    -compile => qw(:error SUCCESS);
 use Apache2::RequestRec ();
 use Apache2::RequestIO ();
 use Apache2::RequestUtil;
 use CGI;
+use Data::Dumper;
 
 use Template qw(:template);
 
@@ -18,7 +21,7 @@ use XML::LibXML;
 
 use OpenSRF::Utils::SettingsParser;
 use OpenILS::Utils::Fieldmapper;
-
+use OpenILS::WWW::Reporter::transforms;
 
 
 # set the bootstrap config and template include directory when 
@@ -53,12 +56,18 @@ sub child_init {
 sub handler {
 
        my $apache = shift;
+       return Apache2::Const::DECLINED if (-e $apache->filename);
+
        my $cgi = CGI->new;
 
        my $path = $apache->path_info;
        (my $ttk = $path) =~ s{^/?([a-zA-Z0-9_]+).*?$}{$1}o;
 
-       $ttk = "s1" unless $ttk;
+       $ttk = $apache->filename unless $ttk;
+       $ttk = "dashboard" unless $ttk;
+
+       $ttk = (split '/', $ttk)[-1];
+       
        my $user;
 
        # if the user is not logged in via cookie, route them to the login page
@@ -66,7 +75,9 @@ sub handler {
                $ttk = "login";
        }
 
+
        print "Content-type: text/html; charset=utf-8\n\n";
+       #print "Content-type: text/html\n\n";
 
        _process_template(
                        apache          => $apache,
@@ -88,6 +99,8 @@ sub _process_template {
        my $ttk                         = $params{template}             || return undef;
        my $apache                      = $params{apache}                       || undef;
        my $param_hash          = $params{params}                       || {};
+       $$param_hash{dtype_xform_map} = $OpenILS::WWW::Reporter::dtype_xform_map;
+       $$param_hash{dtype_xforms} = $OpenILS::WWW::Reporter::dtype_xforms;
 
        my $template;
 
@@ -134,6 +147,10 @@ sub verify_login {
                "open-ils.auth.session.retrieve", $auth_token );
        my $user = $req->gather(1);
 
+       if (ref($user) eq 'HASH' && $user->{ilsevent} == 1001) {
+               return 0;
+       }
+
        return $user if ref($user);
        return 0;
 }