Mercurial > pub > Impl
comparison Lib/IMPL/Web/QueryHandler/PageFormat.pm @ 116:1722ca51537c
minor changes.
Auth no more throws an exception when fails
author | wizard |
---|---|
date | Mon, 31 May 2010 08:30:39 +0400 |
parents | 0e72ad99eef7 |
children | 92c850d0bdb9 |
comparison
equal
deleted
inserted
replaced
115:5edc2ac5231c | 116:1722ca51537c |
---|---|
11 | 11 |
12 BEGIN { | 12 BEGIN { |
13 public property templatesCharset => prop_all; | 13 public property templatesCharset => prop_all; |
14 public property templatesBase => prop_all; | 14 public property templatesBase => prop_all; |
15 public property defaultTarget => prop_all; | 15 public property defaultTarget => prop_all; |
16 public property pathinfoPrefix => prop_all; | |
16 } | 17 } |
17 | 18 |
18 sub CTOR { | 19 sub CTOR { |
19 my ($this) = @_; | 20 my ($this) = @_; |
20 | 21 |
29 try { | 30 try { |
30 | 31 |
31 $this->templatesBase($ENV{DOCUMENT_ROOT}) unless $this->templatesBase; | 32 $this->templatesBase($ENV{DOCUMENT_ROOT}) unless $this->templatesBase; |
32 | 33 |
33 my $pathInfo = $ENV{PATH_INFO}; | 34 my $pathInfo = $ENV{PATH_INFO}; |
34 local $ENV{PATH_INFO} = $pathInfo || $this->defaultTarget; | 35 my $prefixRoot = ""; |
36 if (my $rx = $this->pathinfoPrefix) { | |
37 $pathInfo =~ s/($rx)//; | |
38 $prefixRoot = $1 if $1; | |
39 } | |
40 local $ENV{PATH_INFO} = $pathInfo || $this->defaultTarget; | |
35 | 41 |
36 my @path = split /\//, ($ENV{PATH_INFO} || '') or die new IMPL::Exception("PATH_INFO is empty and no defaultTarget specified" ); | 42 my @path = split /\//, ($ENV{PATH_INFO} || '') or die new IMPL::Exception("PATH_INFO is empty and no defaultTarget specified" ); |
37 | 43 |
38 $doc->LoadFile ( File::Spec->catfile($this->templatesBase,@path), $this->templatesCharset ); | 44 $doc->LoadFile ( File::Spec->catfile($this->templatesBase,@path), $this->templatesCharset ); |
39 $doc->AddVar( result => $nextHandler->() ); | 45 $doc->AddVar( result => $nextHandler->() ); |
40 $doc->AddVar( absoluteUrl => sub { "/$_[0]" } ); | 46 $doc->AddVar( absoluteUrl => sub { "$prefixRoot/$_[0]" } ); |
41 { | 47 { |
42 local $@; | 48 local $@; |
43 $doc->AddVar( user => eval { IMPL::Security::Context->current->principal; } ); | 49 $doc->AddVar( user => IMPL::Security::Context->current->principal ); |
44 $doc->AddVar( session => eval { IMPL::Security::Context->current; } ); | 50 $doc->AddVar( session => IMPL::Security::Context->current ); |
45 warn $@ if $@; | 51 warn $@ if $@; |
46 } | 52 } |
47 | 53 |
48 $action->response->contentType('text/html'); | 54 $action->response->contentType('text/html'); |
49 my $hOut = $action->response->streamBody; | 55 my $hOut = $action->response->streamBody; |