# HG changeset patch # User wizard # Date 1275953890 -14400 # Node ID 92c850d0bdb995c359b6884dc1228df3f9bda4a8 # Parent 41e9d9ea3db555b5851287ec28cf1798f98f0446 Minor changes Fixed bug with templates base in the PageFormat module Added an ability to remove current security context with a specified diff -r 41e9d9ea3db5 -r 92c850d0bdb9 Lib/IMPL/Security/Context.pm --- a/Lib/IMPL/Security/Context.pm Mon Jun 07 17:45:14 2010 +0400 +++ b/Lib/IMPL/Security/Context.pm Tue Jun 08 03:38:10 2010 +0400 @@ -49,6 +49,12 @@ } } +sub Apply { + my ($this) = @_; + + $current = $this; +} + sub isTrusted { my ($this) = @_; @@ -144,6 +150,11 @@ Делает контекст текущим и выполняет в нем функцию по ссылке C<$code>. По окончании выполнения, контекст восстанавливается. +=item C + +Заменяет текущий контекст на себя, но до конца действия метода C, если +таковой был вызван. + =item C<[static,get] nobody> Контекст для неаутентифицированных пользователей, минимум прав. diff -r 41e9d9ea3db5 -r 92c850d0bdb9 Lib/IMPL/Web/QueryHandler/PageFormat.pm --- a/Lib/IMPL/Web/QueryHandler/PageFormat.pm Mon Jun 07 17:45:14 2010 +0400 +++ b/Lib/IMPL/Web/QueryHandler/PageFormat.pm Tue Jun 08 03:38:10 2010 +0400 @@ -41,7 +41,7 @@ my @path = split /\//, ($ENV{PATH_INFO} || '') or die new IMPL::Exception("PATH_INFO is empty and no defaultTarget specified" ); - $doc->LoadFile ( File::Spec->catfile($this->templatesBase,@path), $this->templatesCharset ); + $doc->LoadFile ( File::Spec->catfile($this->templatesBase,@path), $this->templatesCharset, $this->templatesBase ); $doc->AddVar( result => $nextHandler->() ); $doc->AddVar( absoluteUrl => sub { "$prefixRoot/$_[0]" } ); { diff -r 41e9d9ea3db5 -r 92c850d0bdb9 Lib/IMPL/Web/TT/Document.pm --- a/Lib/IMPL/Web/TT/Document.pm Mon Jun 07 17:45:14 2010 +0400 +++ b/Lib/IMPL/Web/TT/Document.pm Tue Jun 08 03:38:10 2010 +0400 @@ -147,7 +147,7 @@ } sub LoadFile { - my ($this,$filePath,$encoding) = @_; + my ($this,$filePath,$encoding,@includes) = @_; die new IMPL::InvalidArgumentException("A filePath parameter is required") unless $filePath; @@ -165,7 +165,7 @@ INTERPOLATE => 1, PRE_CHOMP => 1, POST_CHOMP => 1, - INCLUDE_PATH => $inc + INCLUDE_PATH => [$inc,@includes] ); $this->template($this->context->template($fileName));