Bug 41946: Allow superlibrarians to set protected flag on patron creation
Since bug 36085, the protected flag in a patron account was removed from
the patron creation form, regardless of if the user is a superlibrarian.
- Hoist $logged_in_user lookup before the edit_form block
- Move superlibrarian capability checks after the block so they apply
to all operations including patron creation
To test:
1. Sign in as a superlibrarian
2. Go to Patrons > New patron > choose any category
3. Without this patch: the "Protected" yes/no field is missing
from the "Library management" section
4. Apply this patch
5. Repeat step 2
- The "Protected" yes/no field is now visible
6. Create the patron with Protected set to "Yes"
7. Confirm the patron is saved as protected
8. Sign in as a non-superlibrarian with edit_borrowers permission
9. Repeat step 2
- The "Protected" field should still be hidden
10. Edit an existing patron as superlibrarian
- The "Protected" field is visible and functional
11. Edit an existing patron as non-superlibrarian
- The "Protected" field is hidden
12. Sign off
Signed-off-by: Caroline Cyr La Rose <caroline.cyr-la-rose@inlibro.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Pedro Amorim <pedro.amorim@openfifth.co.uk>
This commit is contained in:
parent
38cbe6b195
commit
fc5ce2dd7e
|
|
@ -165,8 +165,8 @@ foreach (@field_check) {
|
|||
$template->param( "quickadd" => 1 ) if ($quickadd);
|
||||
$template->param( "duplicate" => 1 ) if ( $op eq 'duplicate' );
|
||||
$template->param( "checked" => 1 ) if ( defined($nodouble) && $nodouble eq 1 );
|
||||
my $logged_in_user = Koha::Patrons->find($loggedinuser);
|
||||
if ( $op eq 'edit_form' or $op eq 'cud-save' or $op eq 'duplicate' ) {
|
||||
my $logged_in_user = Koha::Patrons->find($loggedinuser);
|
||||
output_and_exit_if_error(
|
||||
$input, $cookie, $template,
|
||||
{ module => 'members', logged_in_user => $logged_in_user, current_patron => $patron }
|
||||
|
|
@ -176,14 +176,14 @@ if ( $op eq 'edit_form' or $op eq 'cud-save' or $op eq 'duplicate' ) {
|
|||
if ( $patron->is_superlibrarian && !$logged_in_user->is_superlibrarian ) {
|
||||
$NoUpdateEmail = 1;
|
||||
}
|
||||
if ( $logged_in_user->is_superlibrarian ) {
|
||||
$CanUpdatePasswordExpiration = 1;
|
||||
$CanUpdateProtectPatron = 1;
|
||||
}
|
||||
|
||||
$borrower_data = $patron->unblessed;
|
||||
}
|
||||
|
||||
if ( $logged_in_user->is_superlibrarian ) {
|
||||
$CanUpdatePasswordExpiration = 1;
|
||||
$CanUpdateProtectPatron = 1;
|
||||
}
|
||||
|
||||
my $categorycode = $input->param('categorycode') || $borrower_data->{'categorycode'};
|
||||
my $category = Koha::Patron::Categories->find($categorycode);
|
||||
$template->param( patron_category => $category );
|
||||
|
|
|
|||
Loading…
Reference in New Issue