diff --git a/installer/data/mysql/atomicupdate/Bug_35830_add_merge_borrowers_permission.pl b/installer/data/mysql/atomicupdate/Bug_35830_add_merge_borrowers_permission.pl new file mode 100755 index 0000000000..776cdb9005 --- /dev/null +++ b/installer/data/mysql/atomicupdate/Bug_35830_add_merge_borrowers_permission.pl @@ -0,0 +1,24 @@ +use Modern::Perl; +use Koha::Installer::Output qw(say_warning say_success say_info); + +return { + bug_number => "35830", + description => "Add permission borrowers:merge_borrowers", + up => sub { + my ($args) = @_; + my ( $dbh, $out ) = @$args{qw(dbh out)}; + + $dbh->do( + q{INSERT IGNORE INTO permissions (module_bit, code, description) + VALUES (4, 'merge_borrowers', 'Merge patrons')} + ); + + say $out "Added new permission 'merge_borrowers'"; + + $dbh->do( + q{INSERT INTO user_permissions (borrowernumber, module_bit, code) SELECT borrowernumber, module_bit, 'merge_borrowers' FROM user_permissions where module_bit = 4 and code = 'edit_borrowers';} + ); + + say $out "Added 'merge_borrowers' permission to existing users with 'edit_borrowers'"; + }, +}; diff --git a/installer/data/mysql/mandatory/userpermissions.sql b/installer/data/mysql/mandatory/userpermissions.sql index 1ff3f33d1e..ef815a23e9 100644 --- a/installer/data/mysql/mandatory/userpermissions.sql +++ b/installer/data/mysql/mandatory/userpermissions.sql @@ -48,6 +48,7 @@ INSERT INTO permissions (module_bit, code, description) VALUES ( 4, 'delete_borrowers', 'Delete patrons'), ( 4, 'edit_borrowers', 'Add, modify and view patron information'), ( 4, 'list_borrowers', 'Search, list and view patrons'), + ( 4, 'merge_borrowers', 'Merge patrons'), ( 4, 'send_messages_to_borrowers', 'Send messages to patrons'), ( 4, 'view_borrower_infos_from_any_libraries', 'View patron infos from any libraries'), ( 6, 'place_holds', 'Place holds for patrons'), diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/permissions.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/permissions.inc index aa331ee7cf..3e3c17dea2 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/permissions.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/permissions.inc @@ -225,6 +225,9 @@ [%- CASE 'delete_borrowers' -%] Delete patrons ([% name | html %]) + [%- CASE 'merge_borrowers' -%] + Merge patrons + ([% name | html %]) [%- CASE 'edit_borrowers' -%] Add, modify and view patron information ([% name | html %]) diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/member.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/members/member.tt index fb42e1d5b7..e81b6aedd2 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/member.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/member.tt @@ -95,7 +95,7 @@ [% END %] - [% IF CAN_user_borrowers_edit_borrowers %] + [% IF CAN_user_borrowers_merge_borrowers %]
diff --git a/members/merge-patrons.pl b/members/merge-patrons.pl index cb10f2fcbb..c0100fa5c0 100755 --- a/members/merge-patrons.pl +++ b/members/merge-patrons.pl @@ -33,7 +33,7 @@ my ( $template, $loggedinuser, $cookie, $flags ) = get_template_and_user( template_name => "members/merge-patrons.tt", query => $cgi, type => "intranet", - flagsrequired => { borrowers => 'edit_borrowers' }, + flagsrequired => { borrowers => 'merge_borrowers' }, } ); diff --git a/t/Koha/Auth/Permissions.t b/t/Koha/Auth/Permissions.t index 0fc4ba108a..dd9a1ff045 100755 --- a/t/Koha/Auth/Permissions.t +++ b/t/Koha/Auth/Permissions.t @@ -127,6 +127,7 @@ subtest 'superlibrarian tests' => sub { 'CAN_user_acquisition' => 1, 'CAN_user_borrowers_send_messages_to_borrowers' => 1, 'CAN_user_borrowers_delete_borrowers' => 1, + 'CAN_user_borrowers_merge_borrowers' => 1, 'CAN_user_borrowers_edit_borrowers' => 1, 'CAN_user_borrowers_list_borrowers' => 1, 'CAN_user_borrowers_api_validate_password' => 1,