Mercurial > pub > Impl
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));