1 package SL::Dispatcher::AuthHandler;
5 use parent qw(Rose::Object);
7 use SL::Dispatcher::AuthHandler::Admin;
8 use SL::Dispatcher::AuthHandler::User;
11 my ($self, %param) = @_;
13 my $auth_level = $self->get_auth_level(%param);
14 my $handler_name = "SL::Dispatcher::AuthHandler::" . ucfirst($auth_level);
15 $self->{handlers} ||= {};
16 $self->{handlers}->{$handler_name} ||= $handler_name->new;
17 $self->{handlers}->{$handler_name}->handle;
23 my ($self, %param) = @_;
25 my $auth_level = $param{routing_type} eq 'old' ? ($param{script} eq 'admin' ? 'admin' : 'user')
26 : $param{routing_type} eq 'controller' ? "SL::Controller::$param{controller}"->get_auth_level($param{action})
29 return $auth_level eq 'user' ? 'user' : 'admin';