# HG changeset patch # User sergey # Date 1356387539 -14400 # Node ID 2879cdb6b8cd15534f90ac6521ef5cb731e07017 # Parent b92f19630d3319b60b923205b68ba489fa5a2608 sync diff -r b92f19630d33 -r 2879cdb6b8cd Lib/IMPL/Security/AbstractContext.pm --- a/Lib/IMPL/Security/AbstractContext.pm Fri Dec 21 00:09:11 2012 +0400 +++ b/Lib/IMPL/Security/AbstractContext.pm Tue Dec 25 02:18:59 2012 +0400 @@ -3,8 +3,11 @@ use warnings; use IMPL::Const qw(:prop); + use IMPL::require { - Role => 'IMPL::Security::Role' + Role => 'IMPL::Security::Role', + Exception => 'IMPL::Exception', + NotImplementedException => '-IMPL::NotImplementedException' }; use parent qw(IMPL::Class::Meta); @@ -118,9 +121,10 @@ Идентификатор пользователя, владельца контекста. -=head2 C<[get] rolesAssigned> +=head2 C<[get,set] rolesAssigned> -Список назначенных (активных) ролей пользователю. +Явно назначенные роли. Если список пуст, то считается, что используются роли +пользователя по-умолчанию. =head2 C<[get] auth> @@ -149,4 +153,10 @@ Заменяет текущий контекст на себя, но до конца действия метода C, если таковой был вызван. +=head2 C + +Проверяет наличие необходимых ролей у контекста. Данный метод позволяет +абстрагироваться от механизмов связи контекста и ролей. Возвращает истинное +значение если список необходимых ролей у пользователя имеется. + =cut diff -r b92f19630d33 -r 2879cdb6b8cd Lib/IMPL/Web/View/TemplateView.pm --- a/Lib/IMPL/Web/View/TemplateView.pm Fri Dec 21 00:09:11 2012 +0400 +++ b/Lib/IMPL/Web/View/TemplateView.pm Tue Dec 25 02:18:59 2012 +0400 @@ -8,7 +8,6 @@ ], props => [ template => PROP_RW, - defaultTemplate => PROP_RW ] }; diff -r b92f19630d33 -r 2879cdb6b8cd Lib/IMPL/Web/ViewResult.pm --- a/Lib/IMPL/Web/ViewResult.pm Fri Dec 21 00:09:11 2012 +0400 +++ b/Lib/IMPL/Web/ViewResult.pm Tue Dec 25 02:18:59 2012 +0400 @@ -2,6 +2,7 @@ use strict; use IMPL::Const qw(:prop); +use Carp qw(carp); use IMPL::declare { base => [ @@ -10,13 +11,18 @@ ], props => [ model => PROP_RW, - location => PROP_RW, + _location => PROP_RW, cookies => PROP_RW, headers => PROP_RW, status => PROP_RW ] }; +sub location { + carp "location property is absolute"; + return shift->_location(@_); +} + 1; __END__ @@ -35,8 +41,7 @@ my ($this, $action) = @_; return IMPL::Web::ViewResult->new( - model => $model, - location => $this->location + model => $model ); } @@ -52,10 +57,6 @@ Модель ресурса, как правило это результат выполнения C метода. -=head2 C<[get,set]location> - -Текущий абсолютный адрес ресурса. - =head2 C<[get,set]cookies> Хеш с печеньками, которые будут добавлены в C ответ.