Fix LDAP unit tests & merge

This commit is contained in:
Christophe Maudoux 2021-05-01 12:31:12 +02:00
parent a282a37b66
commit cb28b7cb1e
2 changed files with 33 additions and 86 deletions

View File

@ -381,14 +381,11 @@ sub display {
my $plugin =
$self->loadedModules->{"Lemonldap::NG::Portal::Plugins::FindUser"};
my $fields = [];
if ( $plugin
$fields = $plugin->buildForm()
if ( $plugin
&& $self->conf->{findUser}
&& $self->conf->{impersonationRule}
&& $self->conf->{findUserSearchingAttributes} )
{
#$login = $req->data->{findUser};
$fields = $plugin->buildForm();
}
&& $self->conf->{findUserSearchingAttributes} );
%templateParams = (
AUTH_ERROR => $req->error,
@ -403,15 +400,33 @@ sub display {
DISPLAY_REGISTER => $self->conf->{portalDisplayRegister},
DISPLAY_UPDATECERTIF =>
$self->conf->{portalDisplayCertificateResetByMail},
DISPLAY_FINDUSER => scalar @$fields,
FIELDS => $fields,
SPOOFID => $req->data->{findUser},
MAILCERTIF_URL => $self->conf->{certificateResetByMailURL},
MAIL_URL => $self->conf->{mailUrl},
REGISTER_URL => $self->conf->{registerUrl},
HIDDEN_INPUTS => $self->buildHiddenForm($req),
STAYCONNECTED => $self->conf->{stayConnected},
IMPERSONATION => $self->conf->{impersonationRule},
DISPLAY_FINDUSER => scalar @$fields,
FIELDS => $fields,
SPOOFID => $req->data->{findUser},
MAILCERTIF_URL => $self->conf->{certificateResetByMailURL},
MAIL_URL => $self->conf->{mailUrl},
REGISTER_URL => $self->conf->{registerUrl},
HIDDEN_INPUTS => $self->buildHiddenForm($req),
STAYCONNECTED => $self->conf->{stayConnected},
IMPERSONATION => $self->conf->{impersonationRule},
PPOLICY_NOPOLICY => !$self->isPP(),
DISPLAY_PPOLICY => $self->conf->{portalDisplayPasswordPolicy},
PPOLICY_MINSIZE => $self->conf->{passwordPolicyMinSize},
PPOLICY_MINLOWER => $self->conf->{passwordPolicyMinLower},
PPOLICY_MINUPPER => $self->conf->{passwordPolicyMinUpper},
PPOLICY_MINDIGIT => $self->conf->{passwordPolicyMinDigit},
PPOLICY_MINSPECHAR => $self->conf->{passwordPolicyMinSpeChar},
(
$self->conf->{passwordPolicyMinSpeChar} || $self->speChars()
? ( PPOLICY_ALLOWEDSPECHAR => $self->speChars() )
: ()
),
REQUIRE_OLDPASSWORD => 1,
OLDPASSWORD =>
$self->checkXSSAttack( 'oldpassword', $req->data->{oldpassword} )
? ""
: $req->data->{oldpassword},
HIDE_OLDPASSWORD => $self->conf->{hideOldPassword},
(
$req->data->{customScript}
? ( CUSTOM_SCRIPT => $req->data->{customScript} )
@ -435,79 +450,10 @@ sub display {
MSG => $req->info(),
LOCKTIME => $req->lockTime()
);
}
else {
my $form = $self->_authentication->getForm($req);
$filter->{LOGIN_FORM} = $form;
# TODO
# START "MAY BE BROKEN"
my $plugin =
$self->loadedModules->{
"Lemonldap::NG::Portal::Plugins::FindUser"};
my $fields = [];
if ( $plugin
&& $self->conf->{findUser}
&& $self->conf->{impersonationRule}
&& $self->conf->{findUserSearchingAttributes} )
{
$login = $req->data->{findUser};
$fields = $plugin->buildForm();
}
# Authentication loop
if ( $self->conf->{authentication} eq 'Choice' )
# and my $authLoop = $self->_buildAuthLoop($req) )
{
%templateParams = (
%templateParams,
CHOICE_PARAM => $self->conf->{authChoiceParam},
CHOICE_VALUE => $req->data->{_authChoice},
DISPLAY_TAB => scalar( $req->param("tab") ),
DISPLAY_FORM => 0,
DISPLAY_OPENID_FORM => 0,
DISPLAY_YUBIKEY_FORM => 0,
DISPLAY_FINDUSER => scalar @$fields,
FIELDS => $fields,
SPOOFID => $login
);
}
# Choose what form to display if not in a loop
else {
my $displayType =
eval { $self->_authentication->getDisplayType($req) }
|| 'logo';
$self->logger->debug("Display type $displayType");
%templateParams = (
%templateParams,
DISPLAY_FORM => $displayType =~ /\bstandardform\b/ ? 1
: 0,
DISPLAY_OPENID_FORM => $displayType =~ /\bopenidform\b/ ? 1
: 0,
DISPLAY_YUBIKEY_FORM => $displayType =~ /\byubikeyform\b/
? 1
: 0,
DISPLAY_SSL_FORM => $displayType =~ /sslform/ ? 1 : 0,
DISPLAY_GPG_FORM => $displayType =~ /gpgform/ ? 1 : 0,
DISPLAY_LOGO_FORM => $displayType eq "logo" ? 1 : 0,
DISPLAY_FINDUSER => scalar @$fields,
module => $displayType eq "logo"
? $self->getModule( $req, 'auth' )
: "",
AUTH_LOOP => [],
PORTAL_URL =>
( $displayType eq "logo" ? $self->conf->{portal} : 0 ),
MSG => $req->info(),
FIELDS => $fields,
SPOOFID => $login
);
}
# END "MAY BE BROKEN"
}
}

View File

@ -6,7 +6,8 @@ use IO::String;
use File::Copy;
use Lemonldap::NG::Portal::Main::Constants qw(
PE_RESETCERTIFICATE_INVALID PE_RESETCERTIFICATE_FORMEMPTY
PE_RESETCERTIFICATE_INVALID
PE_RESETCERTIFICATE_FORMEMPTY
PE_RESETCERTIFICATE_FIRSTACCESS
);
@ -18,7 +19,7 @@ BEGIN {
}
my ( $res, $user );
my $maintests = 6;
my $maintests = 12;
SKIP: {
eval