logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Lemonldap:NG::Portal::Password - Writing password modification modules for LemonLDAP::NG.

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>

Description

       Password modules are used to modify the user's password in regular password change operations or password
       reset operations. Password modules are independent objects that are instantiated by Lemonldap::NG portal.
       They must provide methods described below.

Download

       Lemonldap::NG is available at <https://lemonldap-ng.org/download>

Logging

       Logging is provided by $self->logger and $self->userLogger. The following rules must be applied:

       logger->debug: technical debugging messages
       logger->info: simple technical information
       logger->notice: technical information that could interest administrators
       logger->warn: technical warning
       logger->error: error that must be reported to administrator
       userLogger->info: simple information about user's action
       userLogger->notice: information that may be registered (auth success,...)
       userLogger->warn: bad action of a user (auth failure). Auth/Combination transform it to "info" when
       another authentication scheme is available
       userLogger->error: bad action of a user that must be reported, (even if another backend is available with
       Combination)

Methods

AccessorsandmethodsprovidedbyLemonldap::NG::Common::Module
       p: portal object
       conf: configuration hash (as reference)
       logger alias for p->logger accessor
       userLogger alias for p->userLogger accessor

   MethodsthatmustbeprovidedbyaPasswordmoduleinit()

       Method  launched  after object creation (after each configuration reload). It must return a true value if
       initialization was successful.

       Methodscalledondemand

       All these methods must return a Lemonldap::NG::Portal::Main::Constants value.  They are called  with  one
       argument: a Lemonldap::NG::Portal::Main::Request object.

       confirm($req, $old_password)

       This  method is called to validate that the supplied old password is correct.  This is slightly different
       from authentication in the sense that an expired old password cannot be used to login but can be used  to
       set a new password.

       modifyPassword($req, $new_password, %args)

       This method is called to perform the actual password change.

       Possible args:

       passwordReset: set in the case of a password reset (old password is not known) =item useMail: set if
       $req->user contains the user's email

Name

       Lemonldap:NG::Portal::Password - Writing password modification modules for LemonLDAP::NG.

Synopsis

           package Lemonldap::NG::Portal::Password::My;

           use strict;
           use Mouse;

           # Add constants used by this module
           use Lemonldap::NG::Portal::Main::Constants qw(PE_OK);

           our $VERSION = '0.1';

           extends 'Lemonldap::NG::Portal::Password::Base';

           sub init {
               my ($self) = @_;
               ...
           }

           sub confirm {
               my ( $self, $req, $old_password ) = @_;
               ...
           }

           sub modifyPassword {
               my ( $self, $req, $new_password, %args ) = @_;
               ...
           }

return

See Also