Provided by: liblemonldap-ng-portal-perl_2.18.2+ds-1_all 

NAME
Lemonldap:NG::Portal::Captcha - Writing CAPTCHA modules for LemonLDAP::NG.
SYNOPSIS
package Lemonldap::NG::Portal::Captcha::My;
use strict;
use Mouse;
# Add constants used by this module
our $VERSION = '0.1';
extends 'Lemonldap::NG::Portal::Main::Plugin';
sub init {
my $self = shift;
return 1;
}
sub init_captcha {
my ( $self, $req ) = @_;
# Read option from the manager configuration
my $option = $self->conf->{captchaOptions}->{option1};
# This can be used to inject custom JS code at the beginning
# of the page
my $script = <your html code>;
$req->data->{customScript} .= $script;
# This will add your custom HTML code to the protected form
my $html = <your html code>;
$req->captchaHtml($html);
}
sub check_captcha {
my ( $self, $req ) = @_;
my $captcha_input = $req->param('some_post_param');
my $is_captcha_valid = <your code here>;
if($is_captcha_valid) {
return 1;
} else {
return 0;
}
}
1;
DESCRIPTION
Captcha modules only need to implement two methods: one for initializing the challenge, before the form
is displayed, and the other to verify that the submitted response is correct.
METHODS
Accessors and methods provided by Lemonldap::NG::Portal::Main::Plugin
p: portal object
conf: configuration hash (as reference)
logger alias for p->logger accessor
userLogger alias for p->userLogger accessor
error: alias for p->error method
"Routes" management
Like each module that inherits from Lemonldap::NG::Portal::Plugin, you can define dedicated routes in a
Captcha plugin.
addAuthRoute: wrapper to Lemonldap::NG::Handler::PSGI::Try addAuthRoute() method
addUnauthRoute: wrapper to Lemonldap::NG::Handler::PSGI::Try addUnauthRoute() method
Methods that must be provided by a Captcha module
init_captcha($req)
This method is called when the protected form is built by LemonLDAP::NG. Your responsibility is to do
any preparatory step, and provide LemonLDAP::NG with the HTML code that it has to display in the form to
enable the Captcha.
This is done by setting "$req->captchaHtml"
check_captcha($req)
This method is called after the user submitted the protected form. Your responibility is to check the
user's response (usually provided as a POST field), and return 0 if the response is incorrect, 1 if the
response is correct.
LOGGING
Logging is provided by "$self->logger" and "$self->userLogger". See Lemonldap::NG::Portal::Main::Plugin
for a detailed description of logging levels.
AUTHORS
LemonLDAP::NG team <http://lemonldap-ng.org/team>
BUG REPORT
Use OW2 system to report bug or ask for features:
<https://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/issues>
DOWNLOAD
Lemonldap::NG is available at <https://lemonldap-ng.org/download>
COPYRIGHT AND LICENSE
See COPYING file for details.
This library is free software; you can redistribute it and/or modify it under the terms of the GNU
General Public License as published by the Free Software Foundation; either version 2, or (at your
option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see
<http://www.gnu.org/licenses/>.
perl v5.38.2 2024-02-07 Lemonldap::NG::Portal::Captcha(3pm)