From 0c4460c2fbb6fb678381921911d9030419cc9700 Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Thu, 16 Aug 2018 06:56:30 -0300 Subject: [PATCH] Bug 21233: Add Koha::Exceptions::Password This patch adds some exceptions that we need. To test: - Apply this patch - Run: $ kshell k$ prove t/Koha/Exceptions.t => SUCCESS: Tests pass! - Sign off! :-D Signed-off-by: Tomas Cohen Arazi Signed-off-by: Josef Moravec Signed-off-by: Marcel de Rooy Signed-off-by: Nick Clemens --- Koha/Exceptions/Password.pm | 92 +++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 Koha/Exceptions/Password.pm diff --git a/Koha/Exceptions/Password.pm b/Koha/Exceptions/Password.pm new file mode 100644 index 0000000000..bffafdbadd --- /dev/null +++ b/Koha/Exceptions/Password.pm @@ -0,0 +1,92 @@ +package Koha::Exceptions::Password; + +# This file is part of Koha. +# +# Koha 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 3 of the License, or (at your option) any later +# version. +# +# Koha 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 Koha; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +use Modern::Perl; + +use Exception::Class ( + + 'Koha::Exceptions::Password' => { + description => 'Something went wrong!', + }, + 'Koha::Exceptions::Password::Invalid' => { + isa => 'Koha::Exceptions::Password', + description => 'Invalid password' + }, + 'Koha::Exceptions::Password::TooShort' => { + isa => 'Koha::Exceptions::Password', + description => 'Password is too short', + fields => ['length','min_length'] + }, + 'Koha::Exceptions::Password::TooWeak' => { + isa => 'Koha::Exceptions::Password', + description => 'Password is too weak' + }, + 'Koha::Exceptions::Password::TrailingWhitespaces' => { + isa => 'Koha::Exceptions::Password', + description => 'Password contains trailing whitespace(s)' + } +); + +sub full_message { + my $self = shift; + + my $msg = $self->message; + + unless ( $msg) { + if ( $self->isa('Koha::Exceptions::Password::TooShort') ) { + $msg = sprintf("Password length (%s) is shorter than required (%s)", $self->length, $self->min_length ); + } + } + + return $msg; +} + +=head1 NAME + +Koha::Exceptions::Password - Base class for password exceptions + +=head1 Exceptions + +=head2 Koha::Exceptions::Password + +Generic password exception + +=head2 Koha::Exceptions::Password::Invalid + +The supplied password is invalid. + +=head2 Koha::Exceptions::Password::TooShort + +Password is too short. + +=head2 Koha::Exceptions::Password::TooWeak + +Password is too weak. + +=head2 Koha::Exceptions::Password::TrailingWhitespaces + +Password contains trailing spaces, which is forbidden. + +=head1 Class methods + +=head2 full_message + +Overloaded method for exception stringifying. + +=cut + +1; -- 2.39.5