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