New portal in progress... (#595)
This commit is contained in:
parent
50f28ca6b9
commit
928c669dc4
|
@ -55,18 +55,26 @@ sub init {
|
|||
$self->localConfig(
|
||||
{ %{ HANDLER->confAcc->getLocalConf('portal') }, %$args } );
|
||||
|
||||
# Handle default requests (other path may be declared in enabled plugins)
|
||||
$self->addAuthRoute('*'=>'menu');
|
||||
$self->addUnauthRoute('*'=>'login');
|
||||
# Handle requests (other path may be declared in enabled plugins)
|
||||
$self
|
||||
|
||||
# Default routes must point to routines declared above
|
||||
$self->defaultAuthRoute('');
|
||||
# "/"
|
||||
->addUnauthRoute( '*', 'login', ['GET'] )
|
||||
->addUnauthRoute( '*', 'postLogin', ['POST'] )
|
||||
->addAuthRoute( '*', 'authenticatedRequest', ['GET'] )
|
||||
|
||||
# Core REST API
|
||||
->addUnauthRoute( 'test', 'pleaseAuth', ['GET'] )
|
||||
->addAuthRoute( 'test', 'authenticated', ['GET'] )
|
||||
|
||||
# Default routes must point to routines declared above
|
||||
$self->defaultAuthRoute('');
|
||||
$self->defaultUnauthRoute('');
|
||||
return $self->reloadConf($args);
|
||||
}
|
||||
|
||||
sub reloadConf {
|
||||
my ( $self ) = @_;
|
||||
my ($self) = @_;
|
||||
|
||||
my $conf = HANDLER->lmConf->{cfgNum};
|
||||
|
||||
|
@ -152,7 +160,9 @@ sub loadPlugin {
|
|||
qw(beforeAuthProcess addSessionData afterAuthProcess forAuthUser))
|
||||
{
|
||||
if ( $obj->can($sub) ) {
|
||||
push @{ $self->{$sub} }, $obj->$sub;
|
||||
if ( my $callback = $obj->$sub ) {
|
||||
push @{ $self->{$sub} }, sub { $obj->$callback( $_[1] ) };
|
||||
}
|
||||
}
|
||||
}
|
||||
return $obj->init;
|
||||
|
|
|
@ -6,6 +6,10 @@
|
|||
# underlying handler configuration before launching
|
||||
# Lemonldap::NG::Common::PSGI::Router::handler() (which parse
|
||||
# routes)
|
||||
#
|
||||
# Entry points:
|
||||
# - "/test": * authenticated() for already authenticated users
|
||||
# + pleaseAuth() for others
|
||||
package Lemonldap::NG::Portal::Main::Run;
|
||||
|
||||
use strict;
|
||||
|
@ -15,14 +19,52 @@ use Lemonldap::NG::Portal::Main::Request;
|
|||
our $VERSION = '2.0.0';
|
||||
|
||||
sub handler {
|
||||
my($self,$req) = shift;
|
||||
unless ( $self->conf->{cfgNum} and $self->conf->{cfgNum} eq HANDLER->lmConf->{cfgNum} ) {
|
||||
$self->reloadConf()
|
||||
my ( $self, $req ) = shift;
|
||||
unless ($self->conf->{cfgNum}
|
||||
and $self->conf->{cfgNum} eq HANDLER->lmConf->{cfgNum} )
|
||||
{
|
||||
$self->reloadConf();
|
||||
}
|
||||
bless $req, 'Lemonldap::NG::Portal::Main::Request';
|
||||
return $self->SUPER::handler($req);
|
||||
}
|
||||
|
||||
# CORE REST API
|
||||
|
||||
# Methods that handle /test
|
||||
sub authenticated {
|
||||
my ( $self, $req ) = @_;
|
||||
return $self->sendJSONresponse( $req, { status => 1 } );
|
||||
}
|
||||
|
||||
sub pleaseAuth {
|
||||
my ( $self, $req ) = @_;
|
||||
return $self->sendJSONresponse( $req, { status => 0 } );
|
||||
}
|
||||
|
||||
# MAIN ENTRY POINTS
|
||||
|
||||
sub login {
|
||||
my ( $self, $req ) = @_;
|
||||
return $self->process(
|
||||
'rememberArgs', @{ $self->beforeAuthProcess },
|
||||
@authProcess, @{ $self->addSessionData },
|
||||
@sessionDatas, @{ $self->afterAuthProcess }
|
||||
);
|
||||
}
|
||||
|
||||
sub postLogin {
|
||||
my ( $self, $req ) = @_;
|
||||
return $self->process(
|
||||
@{ $self->beforeAuthProcess },
|
||||
@authProcess, @{ $self->addSessionData },
|
||||
@sessionDatas, @{ $self->afterAuthProcess }
|
||||
);
|
||||
}
|
||||
|
||||
sub authenticatedRequest {
|
||||
}
|
||||
|
||||
# TODO in run
|
||||
# - mustRedirect
|
||||
# - store AuthnLevel in session (setSessionInfo)
|
||||
|
|
Loading…
Reference in New Issue