view Lib/IMPL/Web/Application/Session.pm @ 60:b0c068da93ac

Lazy activation for the configuration objects (final concept) small fixes
author wizard
date Tue, 09 Mar 2010 19:47:39 +0300
parents bf59ee1cd506
children
line wrap: on
line source

package IMPL::Web::Application::Session;
use strict;

use base qw(IMPL::Object);

use IMPL::Security::Auth qw(GenSSID);

use IMPL::Class::Property;

BEGIN {
	public property id => prop_get | owner_set;
	public property principal => prop_get | owner_set;
	public property authSession => prop_get | owner_set;
	public property roles => prop_get | owner_set | prop_list;
}

sub CTOR {
	my ($this,%args) = @_;
	
	$this->principal($args{principal}) or die new IMPL::InvalidArgumentException("A principal is required");
	$this->authSession($args{auth}) or die new IMPL::InvalidArgumentException("An auth session is required");
	$this->roles($args{roles}) if $args{roles};
	
	$this->id(GenSSID());
}

sub DoAuth {
	my ($this,$secData) = @_;
	
	return $this->authSession->DoAuth($secData);
}

sub ValidateSession {
	my ($this,$secData) = @_;
	
	return $this->authSession->ValidateSession($secData);
}

1;

__END__