@@ -, +, @@
- Remove the new permission "reopen_closed_invoices" for a given patron,
- Create an invoice, close it
- Add the permission
---
acqui/invoice.pl | 8 +++++++-
.../data/mysql/atomicupdate/bug_24157.perl | 10 ++++++++++
installer/data/mysql/userpermissions.sql | 1 +
.../prog/en/includes/blocking_errors.inc | 2 ++
.../prog/en/includes/permissions.inc | 5 +++++
.../prog/en/modules/acqui/invoice.tt | 19 ++++++++++++++++---
.../prog/en/modules/acqui/invoices.tt | 4 +++-
.../prog/en/modules/acqui/parcel.tt | 4 +++-
8 files changed, 47 insertions(+), 6 deletions(-)
create mode 100644 installer/data/mysql/atomicupdate/bug_24157.perl
--- a/acqui/invoice.pl
+++ a/acqui/invoice.pl
@@ -52,6 +52,8 @@ my ( $template, $loggedinuser, $cookie, $flags ) = get_template_and_user(
}
);
+my $logged_in_patron = Koha::Patrons->find( $loggedinuser );
+
my $invoiceid = $input->param('invoiceid');
my $op = $input->param('op');
@@ -70,6 +72,9 @@ if ( $op && $op eq 'close' ) {
}
}
elsif ( $op && $op eq 'reopen' ) {
+ output_and_exit( $input, $cookie, $template, 'insufficient_permission' )
+ unless $logged_in_patron->has_permission( { acquisition => 'reopen_closed_invoices' } );
+
ReopenInvoice($invoiceid);
my $referer = $input->param('referer');
if ($referer) {
@@ -90,7 +95,8 @@ elsif ( $op && $op eq 'mod' ) {
shipmentcost_budgetid => $shipment_budget_id
);
if ($input->param('reopen')) {
- ReopenInvoice($invoiceid);
+ ReopenInvoice($invoiceid)
+ if $logged_in_patron->has_permission( { acquisition => 'reopen_closed_invoices' } );
} elsif ($input->param('close')) {
CloseInvoice($invoiceid);
} elsif ($input->param('merge')) {
--- a/installer/data/mysql/atomicupdate/bug_24157.perl
+++ a/installer/data/mysql/atomicupdate/bug_24157.perl
@@ -0,0 +1,10 @@
+$DBversion = 'XXX'; # will be replaced by the RM
+if( CheckVersion( $DBversion ) ) {
+ $dbh->do(q|
+ INSERT IGNORE INTO permissions (module_bit, code, description) VALUES
+ (11, 'reopen_closed_invoices', 'Reopen closed invoices')
+ |);
+
+ SetVersion( $DBversion );
+ print "Upgrade to $DBversion done (Bug 24157: Add new permission reopen_closed_invoices)\n";
+}
--- a/installer/data/mysql/userpermissions.sql
+++ a/installer/data/mysql/userpermissions.sql
@@ -65,6 +65,7 @@ INSERT INTO permissions (module_bit, code, description) VALUES
(11, 'budget_add_del', 'Add and delete funds (but can''t modify funds)'),
(11, 'budget_manage_all', 'Manage all funds'),
(11, 'edi_manage', 'Manage EDIFACT transmissions'),
+ (11, 'reopen_closed_invoices', 'Reopen closed invoices'),
(12, 'suggestions_manage', 'Manage purchase suggestions'),
(13, 'edit_news', 'Write news for the OPAC and staff interfaces'),
(13, 'label_creator', 'Create printable labels and barcodes from catalog and patron data'),
--- a/koha-tmpl/intranet-tmpl/prog/en/includes/blocking_errors.inc
+++ a/koha-tmpl/intranet-tmpl/prog/en/includes/blocking_errors.inc
@@ -19,6 +19,8 @@
The budget is locked, fund creation is not possible.
[% CASE 'missing_es_modules' %]
Necessary Elasticsearch packages are not installed on your server. Please contact your server admin if you wish to configure Elasticsearch
+ [% CASE 'insufficient_permission' %]
+ You do not have sufficient permission to continue.
[% CASE %][% blocking_error | html %]
[% END %]
--- a/koha-tmpl/intranet-tmpl/prog/en/includes/permissions.inc
+++ a/koha-tmpl/intranet-tmpl/prog/en/includes/permissions.inc
@@ -690,6 +690,11 @@
Manage EDIFACT transmissions
([% name | html %])
+ [%- CASE 'reopen_closed_invoices' -%]
+
+ Reopen closed invoices
+
+ ([% name | html %])
[%# self_check %]
[%- CASE 'self_checkin_module' -%]
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/invoice.tt
+++ a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/invoice.tt
@@ -15,6 +15,8 @@
[% INCLUDE 'header.inc' %]
[% INCLUDE 'acquisitions-search.inc' %]
+[% SET readonly = NOT CAN_user_acquisition_edit_invoices %]
+