@@ -, +, @@ - cardnumber - patron_id (a.k.a. borrowernumber) - userid and the userid). $ kshell k$ perl misc/admin/set_password.pl --cardnumber \ --password a_password --- misc/admin/set_password.pl | 113 +++++++++++++++++++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100755 misc/admin/set_password.pl --- a/misc/admin/set_password.pl +++ a/misc/admin/set_password.pl @@ -0,0 +1,113 @@ +#!/usr/bin/perl + +# This file is part of Koha. +# +# Copyright 2019 Koha Development Team +# +# 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, see . + +use Modern::Perl; +use Getopt::Long; +use Pod::Usage; + +use Koha::Patrons; + +my ( $help, $password, $cardnumber, $patron_id, $userid ); +GetOptions( + 'help|?' => \$help, + 'userid=s' => \$userid, + 'password=s' => \$password, + 'patron_id=s' => \$patron_id, + 'cardnumber=s' => \$cardnumber, +); + +pod2usage(1) if $help; +pod2usage("password is mandatory") unless $password; + +unless ( $userid or $patron_id or $cardnumber ) { + pod2usage("userid is mandatory") unless $userid; + pod2usage("patron_id is mandatory") unless $patron_id; + pod2usage("cardnumber is mandatory") unless $cardnumber; +} + +my $filter; + +if ( $userid ) { + $filter->{userid} = $userid; +} + +if ( $cardnumber ) { + $filter->{cardnumber} = $cardnumber; +} + +if ( $patron_id ) { + $filter->{borrowernumber} = $patron_id; +} + +my $patrons = Koha::Patrons->search( $filter ); + +unless ( $patrons->count > 0 ) { + pod2usage( "No patron found matching the specified criteria" ); +} + +my $patron = $patrons->next; +$patron->set_password({ password => $password, skip_validation => 1 }); + +=head1 NAME + +set_password.pl - Set the specified password for the user in Koha + +=head1 SYNOPSIS + +set_password.pl + --userid --password --patron_id --cardnumber + + Options: + -?|--help brief help message + --password the password to be set + --userid the userid to be used to find the patron + --patron_id the borrowernumber for the patron + --cardnumber the cardnumber for the patron + +=head1 OPTIONS + +=over 8 + +=item B<--help|-?> + +Print a brief help message and exits + +=item B<--userid> + +The patron's userid (for finding the patron) + +=item B<--password> + +The password to be set in the database + +=item B<--patron_id> + +The patron's internal id (for finding the patron) + +=item B<--cardnumber> + +Patron's cardnumber (for finding the patron) + +=back + +=head1 DESCRIPTION + +A simple script to change an existing's user password in the Koha database + +=cut --