Mercurial > pub > Impl
view Lib/IMPL/Security/Role.pm @ 263:0f59b2de72af
*fixed IMPL::DOM::Schema circular module references
*modified IMPL::Object::Singleton, added auto-activation
*code cleanups, docs
author | sergey |
---|---|
date | Wed, 09 Jan 2013 05:17:44 +0400 |
parents | 6d8092d8ce1b |
children | 69a1f1508696 |
line wrap: on
line source
package IMPL::Security::Role; use strict; use IMPL::require { AbstractRole => 'IMPL::Security::AbstractRole' }; use IMPL::declare { base => [ 'IMPL::Object' => undef, 'IMPL::Security::AbstractRole' => undef ], props => [ @{AbstractRole->abstractProps()} ] }; __PACKAGE__->abstractProps([]); sub CTOR { my ($this,$name,$parentRoles) = @_; $this->roleName($name) if $name; $this->parentRoles($parentRoles) if $parentRoles; } 1; __END__ =pod =head1 NAME C<IMPL::Security::Role> - стандартная реализация роли безопасности. =head1 SYNOPSIS =begin code # create the megarole my $role = IMPL::Security::Role->new(megarole => [ $adminRole, $directorRole ] ); #use it in context my $context = IMPL::Security::Context->new( principal => $user, assignedRoles => [$user->roles, $megarole] ); $context->Impersonate( sub { # do something forbidden }); =end code =head1 DESCRIPTION Позволяет создавать объекты ролей без привязки к источникам данных и модулям авторизации. Чаще всего используется при реализации каких либо механизмов безопасности, где требуется создать временную роль. C<IMPL::Security::AbstractRole> =cut