Koha/members/members-home.pl
Thibaud Guillot fc75a344b8
Bug 30230: Add new 'list_borrowers' permission
When a patron search is performed only a user with edit_borrowers
permission can search by name. Search can works only with cardnumber but
it makes searching less intuitive I think.

So, as mentioned in the discussion, I've added a new 'list_borrowers' permission,
completely independent of 'edit_borrowers', so that I can search for a member via the interface
and get the results. In addition to the permission to perform check in and checkouts, this no longer poses an obstacle to simple use.

Test plan:

1) Check with a user without 'edit_borrowers' permission that the patron search can only be performed with cardnumber
2) Apply this patch
3) Make the updatedatabase to add new 'list_borrowers' permissions
4) Set 'list_borrowers' permission on one user and see the difference

Signed-off-by: Andrew Fuerste-Henry <andrewfh@dubcolib.org>
Signed-off-by: Emmi Takkinen <emmi.takkinen@koha-suomi.fi>
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: David Cook <dcook@prosentient.com.au>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2024-01-29 12:25:08 +01:00

78 lines
2.5 KiB
Perl
Executable file

#!/usr/bin/perl
# Parts Copyright Biblibre 2010
# 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, see <http://www.gnu.org/licenses>.
use Modern::Perl;
use CGI qw ( -utf8 );
use C4::Auth qw( get_template_and_user );
use C4::Output qw( output_html_with_http_headers );
use C4::Context;
use C4::Members;
use Koha::Patron::Modifications;
use Koha::Libraries;
use Koha::List::Patron qw( GetPatronLists );
use Koha::Patron::Categories;
use Koha::Patron::Attribute::Types;
my $query = CGI->new;
my ($template, $loggedinuser, $cookie, $flags)
= get_template_and_user({template_name => "members/member.tt",
query => $query,
type => "intranet",
flagsrequired => { borrowers => ['edit_borrowers', 'list_borrowers'] },
});
my $no_add = 0;
if( Koha::Libraries->search->count < 1){
$no_add = 1;
$template->param(no_branches => 1);
}
my $categories = Koha::Patron::Categories->search_with_library_limits;
unless ( $categories->count ) {
$no_add = 1;
$template->param(no_categories => 1);
}
else {
# FIXME This does not seem to be used in the template
$template->param(categories => $categories);
}
my $branch =
( C4::Context->preference("IndependentBranchesPatronModifications")
|| C4::Context->preference("IndependentBranches") )
&& !$flags->{'superlibrarian'}
? C4::Context->userenv()->{'branch'}
: undef;
my $pending_borrower_modifications = Koha::Patron::Modifications->pending_count( $branch );
$template->param(
no_add => $no_add,
pending_borrower_modifications => $pending_borrower_modifications,
);
$template->param(
alphabet => C4::Context->preference('alphabet') || join (' ', 'A' .. 'Z'),
PatronAutoComplete => C4::Context->preference('PatronAutoComplete'),
patron_lists => [ GetPatronLists() ],
PatronsPerPage => C4::Context->preference("PatronsPerPage") || 20,
);
output_html_with_http_headers $query, $cookie, $template->output;