Mercurial > pub > Impl
diff Lib/IMPL/Security.pm @ 51:a1498298d3ee
Security in progress
author | wizard@linux-odin.local |
---|---|
date | Mon, 01 Mar 2010 17:25:36 +0300 |
parents | 521c9c1a3ea1 |
children | f47f93534005 |
line wrap: on
line diff
--- a/Lib/IMPL/Security.pm Sat Feb 27 16:28:45 2010 +0300 +++ b/Lib/IMPL/Security.pm Mon Mar 01 17:25:36 2010 +0300 @@ -1,4 +1,24 @@ package IMPL::Security; +require IMPL::Security::Context; +require IMPL::Security::Rule::RoleCheck; + +our @rules = ( + \&IMPL::Security::Rule::RoleCheck::SatisfyAll +); + +sub AccessCheck { + my ($self, $object, $desiredAccess, $context) = @_; + + $context = IMPL::Security::Context->contextCurrent; + + $_->() or return 0 foreach @{$self->Rules}; + + return 1; +} + +sub Rules { + return \@rules; +} 1; @@ -8,6 +28,16 @@ =head1 DESCRIPTION +Модуль для инфраструктуры безопасности, реализует основные функции для авторизации +и аутентификации пользователей. + +Модуль аутентификации, реализиция которого зависит от приложения, аутентифицирует +пользователя, при этом создается контекст безопасности, который содержит +идентификатор пользователя и список активных ролей. + +При проверке прав доступа происходит последовательная проверка правил доступа, +если все правила выполнены, то доступ разрешается. + =cut \ No newline at end of file