Commit 928c669d authored by Yadd's avatar Yadd
Browse files

New portal in progress... (#595)

parent 50f28ca6
...@@ -55,18 +55,26 @@ sub init { ...@@ -55,18 +55,26 @@ sub init {
$self->localConfig( $self->localConfig(
{ %{ HANDLER->confAcc->getLocalConf('portal') }, %$args } ); { %{ HANDLER->confAcc->getLocalConf('portal') }, %$args } );
# Handle default requests (other path may be declared in enabled plugins) # Handle requests (other path may be declared in enabled plugins)
$self->addAuthRoute('*'=>'menu'); $self
$self->addUnauthRoute('*'=>'login');
# 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(''); $self->defaultUnauthRoute('');
return $self->reloadConf($args); return $self->reloadConf($args);
} }
sub reloadConf { sub reloadConf {
my ( $self ) = @_; my ($self) = @_;
my $conf = HANDLER->lmConf->{cfgNum}; my $conf = HANDLER->lmConf->{cfgNum};
...@@ -152,7 +160,9 @@ sub loadPlugin { ...@@ -152,7 +160,9 @@ sub loadPlugin {
qw(beforeAuthProcess addSessionData afterAuthProcess forAuthUser)) qw(beforeAuthProcess addSessionData afterAuthProcess forAuthUser))
{ {
if ( $obj->can($sub) ) { if ( $obj->can($sub) ) {
push @{ $self->{$sub} }, $obj->$sub; if ( my $callback = $obj->$sub ) {
push @{ $self->{$sub} }, sub { $obj->$callback( $_[1] ) };
}
} }
} }
return $obj->init; return $obj->init;
......
...@@ -6,6 +6,10 @@ ...@@ -6,6 +6,10 @@
# underlying handler configuration before launching # underlying handler configuration before launching
# Lemonldap::NG::Common::PSGI::Router::handler() (which parse # Lemonldap::NG::Common::PSGI::Router::handler() (which parse
# routes) # routes)
#
# Entry points:
# - "/test": * authenticated() for already authenticated users
# + pleaseAuth() for others
package Lemonldap::NG::Portal::Main::Run; package Lemonldap::NG::Portal::Main::Run;
use strict; use strict;
...@@ -15,14 +19,52 @@ use Lemonldap::NG::Portal::Main::Request; ...@@ -15,14 +19,52 @@ use Lemonldap::NG::Portal::Main::Request;
our $VERSION = '2.0.0'; our $VERSION = '2.0.0';
sub handler { sub handler {
my($self,$req) = shift; my ( $self, $req ) = shift;
unless ( $self->conf->{cfgNum} and $self->conf->{cfgNum} eq HANDLER->lmConf->{cfgNum} ) { unless ($self->conf->{cfgNum}
$self->reloadConf() and $self->conf->{cfgNum} eq HANDLER->lmConf->{cfgNum} )
{
$self->reloadConf();
} }
bless $req, 'Lemonldap::NG::Portal::Main::Request'; bless $req, 'Lemonldap::NG::Portal::Main::Request';
return $self->SUPER::handler($req); 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 # TODO in run
# - mustRedirect # - mustRedirect
# - store AuthnLevel in session (setSessionInfo) # - store AuthnLevel in session (setSessionInfo)
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment