From f1e8ad62ca79728211773ec34ea3c155d065a445 Mon Sep 17 00:00:00 2001 From: Wainui Witika-Park Date: Tue, 23 Jan 2024 16:33:06 +1300 Subject: [PATCH] Bug 35871: Adding new subpermission merge_delete_authorities Test plan: - apply patch - login to staff client with your personal user - make a new test user - set the new test user's permissions to catalogue so they can access the staff client - logout and log back in to the staff client as the new test user - go to Authorities - do a search - notice there is no drop down next to each authority search result - logout and log back in to the staff client as your personal user - edit the new test user - add permission editauthorities and subpermission merge_delete_authorities - logout and log back in to the staff client as the test user - go to Authorities - do a search - notice how you there is an "Actions" dropdown next to each of the authority search results - click the Action dropdown and notice you can merge - check you can merge results - also check you can delete a result that has 0 records Sponsored-by: Education Services Australia SCIS --- authorities/merge.pl | 2 +- ...add_merge_delete_authorities_subpermission | 22 +++++++++++++++++++ .../data/mysql/mandatory/userpermissions.sql | 1 + .../prog/en/includes/authorities-toolbar.inc | 6 +++-- .../prog/en/includes/permissions.inc | 5 +++++ .../prog/en/modules/authorities/merge.tt | 8 +++++++ .../modules/authorities/searchresultlist.tt | 8 ++++--- 7 files changed, 46 insertions(+), 6 deletions(-) create mode 100755 installer/data/mysql/atomicupdate/bug_35871_add_merge_delete_authorities_subpermission diff --git a/authorities/merge.pl b/authorities/merge.pl index 0799c26b04..a3b2ec54e1 100755 --- a/authorities/merge.pl +++ b/authorities/merge.pl @@ -39,7 +39,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( template_name => "authorities/merge.tt", query => $input, type => "intranet", - flagsrequired => { editauthorities => 1 }, + flagsrequired => { editauthorities => 'merge_delete_authorities' }, } ); diff --git a/installer/data/mysql/atomicupdate/bug_35871_add_merge_delete_authorities_subpermission b/installer/data/mysql/atomicupdate/bug_35871_add_merge_delete_authorities_subpermission new file mode 100755 index 0000000000..563f145201 --- /dev/null +++ b/installer/data/mysql/atomicupdate/bug_35871_add_merge_delete_authorities_subpermission @@ -0,0 +1,22 @@ +use Modern::Perl; + +return { + bug_number => "35871", + description => "Adding a merge_delete_authorities subpermission for editauthorities", + up => sub { + my ($args) = @_; + my ( $dbh, $out ) = @$args{qw(dbh out)}; + + # Do you stuffs here + $DBversion = 'XXX'; + if( CheckVersion( $DBversion ) ) { + $dbh->do(q{INSERT IGNORE INTO permissions (module_bit, code, description) VALUES ('14','merge_delete_authorities','Merge and delete authority records')}); + + NewVersion( $DBversion, undef, "Bug 35871: Add merge_delete_authorities user subpermission" ); + } + + # Print useful stuff here + # permissions + say $out "Added new permission 'merge_delete_authorities'"; + }, +}; diff --git a/installer/data/mysql/mandatory/userpermissions.sql b/installer/data/mysql/mandatory/userpermissions.sql index 7e52abd262..f8037130e0 100644 --- a/installer/data/mysql/mandatory/userpermissions.sql +++ b/installer/data/mysql/mandatory/userpermissions.sql @@ -119,6 +119,7 @@ INSERT INTO permissions (module_bit, code, description) VALUES (13, 'access_files', 'Access to the files stored on the server'), (13, 'upload_general_files', 'Upload any file'), (13, 'upload_manage', 'Manage uploaded files'), + (14, 'merge_delete_authorities', 'Merge and delete authority records'), (15, 'check_expiration', 'Check the expiration of a serial'), (15, 'claim_serials', 'Claim missing serials'), (15, 'create_subscription', 'Create a new subscription'), diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/authorities-toolbar.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/authorities-toolbar.inc index 58b7ca715e..ebc3e641af 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/authorities-toolbar.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/authorities-toolbar.inc @@ -35,8 +35,10 @@ [% IF servers.count > 0 %]
  • Replace record via Z39.50/SRU
  • [% END %] - [% UNLESS ( count ) %] -
  • Delete record
  • + [% IF ( CAN_user_editauthorities_merge_delete_authorities ) %] + [% UNLESS ( count ) %] +
  • Delete record
  • + [% END %] [% END %] diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/permissions.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/permissions.inc index 10b90813f4..35e6b0f97c 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/permissions.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/permissions.inc @@ -637,6 +637,11 @@ Browse the system logs ([% name | html %]) + [%- CASE 'merge_delete_authorities' -%] + + Merge and delete authority records + + ([% name | html %]) [%- CASE 'check_expiration' -%] Check the expiration of a serial diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/authorities/merge.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/authorities/merge.tt index cc2e0ffee6..24344b8e62 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/authorities/merge.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/authorities/merge.tt @@ -40,6 +40,8 @@ div#result { margin-top: 1em; }

    Merging records

    +[% IF CAN_user_editauthorities_merge_delete_authorities %] + [% IF ( errors ) %] [% FOREACH error IN errors %] @@ -119,6 +121,12 @@ div#result { margin-top: 1em; }
    +[% END %] + +[% ELSE %] + +
    You do not have the required privileges to merge authorities.
    + [% END %] diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/authorities/searchresultlist.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/authorities/searchresultlist.tt index 6d5baf41e4..d9ef6c05b1 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/authorities/searchresultlist.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/authorities/searchresultlist.tt @@ -107,9 +107,11 @@ Actions