view lib/IMPL/Security.pm @ 417:3ed0c58e9da3 ref20150831

working on di container, tests
author cin
date Mon, 02 Nov 2015 01:56:53 +0300
parents c6e90e02dd17
children
line wrap: on
line source

package IMPL::Security;
use strict;
use Carp qw(carp);

##VERSION##

require IMPL::Exception;
require IMPL::Security::Rule::RoleCheck;

use IMPL::require { 
    Principal => 'IMPL::Security::Principal',
    AbstractContext => 'IMPL::Security::AbstractContext',
    Context => 'IMPL::Security::Context'
};

sub principal {
    return
        AbstractContext->current
        && AbstractContext->current->principal
        || Principal->nobody; 
}

sub context {
    AbstractContext->current || Context->nobody;
}

1;

__END__