From a89b92f265346e6349f93b83ca1392e7460a6b53 Mon Sep 17 00:00:00 2001 From: Christophe Maudoux Date: Fri, 26 Apr 2019 23:00:17 +0200 Subject: [PATCH] Improve code (#1386) --- .../Lemonldap/NG/Portal/2F/Register/TOTP.pm | 18 +++++++++--------- .../Lemonldap/NG/Portal/2F/Register/U2F.pm | 16 +++++++++------- .../NG/Portal/2F/Register/Yubikey.pm | 19 +++++++++---------- 3 files changed, 27 insertions(+), 26 deletions(-) diff --git a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/2F/Register/TOTP.pm b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/2F/Register/TOTP.pm index bcf6465db..7b1fe1261 100644 --- a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/2F/Register/TOTP.pm +++ b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/2F/Register/TOTP.pm @@ -295,24 +295,24 @@ sub run { return $self->p->sendError( $req, "Corrupted session", 500 ); } } - else { $self->logger->debug("No 2F Device found"); $_2fDevices = []; } - # Delete TOTP 2F device - my @keep = (); - while (@$_2fDevices) { - my $element = shift @$_2fDevices; - $self->logger->debug("Looking for 2F device to delete ..."); - push @keep, $element unless ( $element->{epoch} eq $epoch ); - } + # my @keep = (); + # while (@$_2fDevices) { + # my $element = shift @$_2fDevices; + # $self->logger->debug("Looking for 2F device to delete ..."); + # push @keep, $element unless ( $element->{epoch} eq $epoch ); + # } + # Delete TOTP 2F device + @$_2fDevices = grep { $_->{epoch} ne $epoch } @$_2fDevices; $self->logger->debug( "Delete 2F Device : { type => 'TOTP', epoch => $epoch }"); $self->p->updatePersistentSession( $req, - { _2fDevices => to_json( \@keep ) } ); + { _2fDevices => to_json( $_2fDevices ) } ); $self->userLogger->notice('TOTP deletion succeed'); return [ 200, diff --git a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/2F/Register/U2F.pm b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/2F/Register/U2F.pm index 7523bb9fc..fac030189 100644 --- a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/2F/Register/U2F.pm +++ b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/2F/Register/U2F.pm @@ -287,17 +287,19 @@ sub run { $_2fDevices = []; } - my @keep = (); - while (@$_2fDevices) { - my $element = shift @$_2fDevices; - $self->logger->debug("Looking for 2F device to delete ..."); - push @keep, $element unless ( $element->{epoch} eq $epoch ); - } + # my @keep = (); + # while (@$_2fDevices) { + # my $element = shift @$_2fDevices; + # $self->logger->debug("Looking for 2F device to delete ..."); + # push @keep, $element unless ( $element->{epoch} eq $epoch ); + # } + # Delete U2F device + @$_2fDevices = grep { $_->{epoch} ne $epoch } @$_2fDevices; $self->logger->debug( "Delete 2F Device : { type => 'U2F', epoch => $epoch }"); $self->p->updatePersistentSession( $req, - { _2fDevices => to_json( \@keep ) } ); + { _2fDevices => to_json( $_2fDevices ) } ); $self->userLogger->notice('U2F key unregistration succeed'); return [ 200, diff --git a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/2F/Register/Yubikey.pm b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/2F/Register/Yubikey.pm index 6a47de3a6..8ff93ee80 100644 --- a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/2F/Register/Yubikey.pm +++ b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/2F/Register/Yubikey.pm @@ -176,31 +176,30 @@ sub run { return $self->p->sendError( $req, "Corrupted session", 500 ); } } - else { $self->logger->debug("No 2F Device found"); $_2fDevices = []; } - my @keep = (); - while (@$_2fDevices) { - my $element = shift @$_2fDevices; - $self->logger->debug("Looking for 2F device to delete ..."); - push @keep, $element unless ( $element->{epoch} eq $epoch ); - } + # my @keep = (); + # while (@$_2fDevices) { + # my $element = shift @$_2fDevices; + # $self->logger->debug("Looking for 2F device to delete ..."); + # push @keep, $element unless ( $element->{epoch} eq $epoch ); + # } + # Delete Yubikey device + @$_2fDevices = grep { $_->{epoch} ne $epoch } @$_2fDevices; $self->logger->debug( "Delete 2F Device : { type => 'UBK', epoch => $epoch }"); $self->p->updatePersistentSession( $req, - { _2fDevices => to_json( \@keep ) } ); - + { _2fDevices => to_json( $_2fDevices ) } ); $self->userLogger->notice('Yubikey deletion succeed'); return [ 200, [ 'Content-Type' => 'application/json', 'Content-Length' => 12, ], ['{"result":1}'] ]; - } else { $self->logger->error("Unknown Yubikey action -> $action");