changeset 121:92c850d0bdb9

Minor changes Fixed bug with templates base in the PageFormat module Added an ability to remove current security context with a specified
author wizard
date Tue, 08 Jun 2010 03:38:10 +0400
parents 41e9d9ea3db5
children a7efb3117295
files Lib/IMPL/Security/Context.pm Lib/IMPL/Web/QueryHandler/PageFormat.pm Lib/IMPL/Web/TT/Document.pm
diffstat 3 files changed, 14 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- 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<Apply()>
+
+Заменяет текущий контекст на себя, но до конца действия метода C<Impersonate>, если
+таковой был вызван.
+
 =item C<[static,get] nobody>
 
 Контекст для неаутентифицированных пользователей, минимум прав.
--- 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]" } );
 		{
--- 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));