Mercurial > pub > Impl
changeset 260:2879cdb6b8cd
sync
author | sergey |
---|---|
date | Tue, 25 Dec 2012 02:18:59 +0400 |
parents | b92f19630d33 |
children | 93963ec449c5 |
files | Lib/IMPL/Security/AbstractContext.pm Lib/IMPL/Web/View/TemplateView.pm Lib/IMPL/Web/ViewResult.pm |
diffstat | 3 files changed, 21 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- 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<Impersonate>, если таковой был вызван. +=head2 C<Satisfy(@roles)> + +Проверяет наличие необходимых ролей у контекста. Данный метод позволяет +абстрагироваться от механизмов связи контекста и ролей. Возвращает истинное +значение если список необходимых ролей у пользователя имеется. + =cut
--- 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 ] };
--- 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<Http> метода. -=head2 C<[get,set]location> - -Текущий абсолютный адрес ресурса. - =head2 C<[get,set]cookies> Хеш с печеньками, которые будут добавлены в C<HTTP> ответ.