view Lib/Security/Authz.pm @ 95:67eb8eaec3d4

Added a security authority property to the Context and Security classes Added a WriteResponse method to the SecureCookie class Added a setCookie method to the Response class
author wizard
date Thu, 29 Apr 2010 02:21:27 +0400
parents 16ada169ca75
children
line wrap: on
line source

package Security::Authz;
use Common;
use Security;

our @ISA = qw(Object);

BEGIN {
    DeclareProperty User => ACCESS_READ;
}

sub _CurrentUser {
    my ($class) = @_;

    if (ref $class) {
        return $class->{$User};
    } else {
        if (Security->CurrentSession) {
            Security->CurrentSession->User;
        } else {
            return undef;
        }
    }
}

sub demand {
    my ($class,@Roles) = @_;

    return 0 if not $class->_CurrentUser;

    my %UserRoles = map { $_->Name, 1 } $class->_CurrentUser->Roles;

    return not grep {not $UserRoles{$_}} @Roles;
}