Tidy 2FA code

This commit is contained in:
Maxime Besson 2022-10-10 16:17:09 +02:00
parent 012b41b2b1
commit c54b89485e
2 changed files with 21 additions and 23 deletions

View File

@ -380,7 +380,7 @@ sub run {
# More than 1 2F has been found, display choice # More than 1 2F has been found, display choice
$self->logger->debug("Prepare 2F choice"); $self->logger->debug("Prepare 2F choice");
my $tpl = $self->p->sendHtml( my $res = $self->p->sendHtml(
$req, $req,
'2fchoice', '2fchoice',
params => { params => {
@ -403,7 +403,7 @@ sub run {
], ],
} }
); );
$req->response($tpl); $req->response($res);
return PE_SENDRESPONSE; return PE_SENDRESPONSE;
} }
@ -480,28 +480,27 @@ sub _redirect {
} }
sub _displayRegister { sub _displayRegister {
my ( $self, $req, $tpl ) = @_; my ( $self, $req, $prefix ) = @_;
# After verifying rule: # After verifying rule:
# - display template if $tpl # - display template if $prefix
# - else display choice template # - else display choice template
if ($tpl) { if ($prefix) {
my ($m) = my ($m) =
grep { $_->{m}->prefix eq $tpl } @{ $self->sfRModules }; grep { $_->{m}->prefix eq $prefix } @{ $self->sfRModules };
return $self->p->sendError( $req, 'Inexistent register module', 400 ) return $self->p->sendError( $req, 'Inexistent register module', 400 )
unless $m; unless $m;
return $self->p->sendError( $req, 'Registration not authorized', 403 ) return $self->p->sendError( $req, 'Registration not authorized', 403 )
unless $m->{r}->( $req, $req->userData ); unless $m->{r}->( $req, $req->userData );
my $prefix = $m->{m}->prefix;
return $self->p->sendHtml( return $self->p->sendHtml(
$req, $req,
$m->{m}->template, $m->{m}->template,
params => { params => {
MAIN_LOGO => $self->conf->{portalMainLogo}, MAIN_LOGO => $self->conf->{portalMainLogo},
PREFIX => $prefix, PREFIX => $prefix,
"PREFIX_$prefix" => 1, "PREFIX_$prefix" => 1,
LANGS => $self->conf->{showLanguages}, LANGS => $self->conf->{showLanguages},
MSG => $self->canUpdateSfa($req) || $m->{m}->welcome, MSG => $self->canUpdateSfa($req) || $m->{m}->welcome,
ALERT => ( $self->canUpdateSfa($req) ? 'warning' : 'positive' ), ALERT => ( $self->canUpdateSfa($req) ? 'warning' : 'positive' ),
} }
); );
@ -599,20 +598,20 @@ sub _displayRegister {
# Check rule and display # Check rule and display
sub register { sub register {
my ( $self, $req, $tpl, @args ) = @_; my ( $self, $req, $prefix, @args ) = @_;
# After verifying rule: # After verifying rule:
# - call register run method if $tpl # - call register run method if $prefix
# - else give JSON list of available registers for this user # - else give JSON list of available registers for this user
if ($tpl) { if ($prefix) {
my ($m) = my ($m) =
grep { $_->{m}->prefix eq $tpl } @{ $self->sfRModules }; grep { $_->{m}->prefix eq $prefix } @{ $self->sfRModules };
unless ($m) { unless ($m) {
return $self->p->sendError( $req, return $self->p->sendError( $req,
'Inexistent register module', 400 ); 'Inexistent register module', 400 );
} }
unless ( $m->{r}->( $req, $req->userData ) ) { unless ( $m->{r}->( $req, $req->userData ) ) {
$self->userLogger->error("$tpl 2F registration refused"); $self->userLogger->error("$prefix 2F registration refused");
return $self->p->sendError( $req, 'Registration refused', 403 ); return $self->p->sendError( $req, 'Registration refused', 403 );
} }
return $m->{m}->run( $req, @args ); return $m->{m}->run( $req, @args );

View File

@ -56,11 +56,10 @@ has code_activation => (
lazy => 1, lazy => 1,
default => sub { default => sub {
$_[0]->{conf}->{ mail2fCodeRegex } || '\d{6}'; $_[0]->{conf}->{mail2fCodeRegex} || '\d{6}';
} }
); );
sub init { sub init {
my ($self) = @_; my ($self) = @_;
@ -86,13 +85,12 @@ sub run {
} }
# Delegate code generation to SUPER # Delegate code generation to SUPER
return $self->SUPER::run($req, $token); return $self->SUPER::run( $req, $token );
} }
sub sendCode { sub sendCode {
my ( $self, $req, $sessionInfo, $code ) = @_; my ( $self, $req, $sessionInfo, $code ) = @_;
my $dest = $sessionInfo->{ $self->sessionKey }; my $dest = $sessionInfo->{ $self->sessionKey };
# Build mail content # Build mail content
@ -141,9 +139,10 @@ sub sendCode {
} }
sub verify_external { sub verify_external {
my ($self, $req, $session, $usercode) = @_; my ( $self, $req, $session, $usercode ) = @_;
$self->logger->error("Error in Mail2F: verify_external is not supposed to be invoked"); $self->logger->error(
return PE_ERROR; "Error in Mail2F: verify_external is not supposed to be invoked");
return PE_ERROR;
} }
1; 1;