From 8eb34945a3108ca863eed7a900d565fc02add866 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 from Bug 35870 - 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 - also set the new test user's permissions to subpermission edit_authorities, but not merge_delete_auhtorities - logout and log back in to the staff client as the new test user - go to Authorities - do a search - notice there is an 'Actions' drop down next to each authority search result - notice that the drop down does not give you the option to choose Merge or Delete - logout and log back in to the staff client as your personal user - edit the new test user - add 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 da8c8ab4e9..661c259558 100644 --- a/installer/data/mysql/mandatory/userpermissions.sql +++ b/installer/data/mysql/mandatory/userpermissions.sql @@ -120,6 +120,7 @@ INSERT INTO permissions (module_bit, code, description) VALUES (13, 'upload_general_files', 'Upload any file'), (13, 'upload_manage', 'Manage uploaded files'), (14, 'edit_authorities', 'Edit authority records'), + (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 4d07f678b4..f115ecf2dc 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 b1c75e30ff..0571b8ca7a 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/permissions.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/permissions.inc @@ -642,6 +642,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 b4627a6e23..7ac8419048 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