Provided by: liblemonldap-ng-portal-perl_2.20.2+ds-1build1_all bug

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.40.0                                       2025-02-10                Lemonldap::NG::Portal::Captcha(3pm)