From de79fc49b08551a1b2c986cc6208a46d56091cf7 Mon Sep 17 00:00:00 2001 From: Yadd Date: Tue, 1 Feb 2022 16:11:16 +0100 Subject: [PATCH] Reintroduce stop() method in LDAP/AD backends (#2660) --- .../lib/Lemonldap/NG/Portal/Auth/AD.pm | 20 +++++++++++++++++-- .../lib/Lemonldap/NG/Portal/Auth/LDAP.pm | 14 +++++++++++++ 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Auth/AD.pm b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Auth/AD.pm index 7a8533963..200e24407 100644 --- a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Auth/AD.pm +++ b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Auth/AD.pm @@ -5,8 +5,12 @@ package Lemonldap::NG::Portal::Auth::AD; use strict; use Mouse; -use Lemonldap::NG::Portal::Main::Constants - qw(PE_OK PE_PP_PASSWORD_EXPIRED PE_PP_CHANGE_AFTER_RESET PE_BADCREDENTIALS); +use Lemonldap::NG::Portal::Main::Constants qw( + PE_OK + PE_PP_PASSWORD_EXPIRED + PE_PP_CHANGE_AFTER_RESET + PE_BADCREDENTIALS +); our $VERSION = '2.0.6'; @@ -158,4 +162,16 @@ sub authenticate { return $res; } +# Define which error codes will stop Combination process +# @param res error code +# @return result 1 if stop is needed +sub stop { + my ( $self, $res ) = @_; + + return 1 + if ( $res == PE_PP_PASSWORD_EXPIRED + or $res == PE_PP_CHANGE_AFTER_RESET ); + return 0; +} + 1; diff --git a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Auth/LDAP.pm b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Auth/LDAP.pm index 9255730c1..25f22dfd4 100644 --- a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Auth/LDAP.pm +++ b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Auth/LDAP.pm @@ -7,6 +7,7 @@ use Lemonldap::NG::Portal::Main::Constants qw( PE_DONE PE_ERROR PE_LDAPCONNECTFAILED + PE_PP_ACCOUNT_LOCKED PE_PP_PASSWORD_EXPIRED PE_PP_CHANGE_AFTER_RESET ); @@ -99,4 +100,17 @@ sub authLogout { return PE_OK; } +# Define which error codes will stop Combination process +# @param res error code +# @return result 1 if stop is needed +sub stop { + my ( $self, $res ) = @_; + + return 1 + if ( $res == PE_PP_PASSWORD_EXPIRED + or $res == PE_PP_ACCOUNT_LOCKED + or $res == PE_PP_CHANGE_AFTER_RESET ); + return 0; +} + 1;