From 631da6506b41760793412f0efca3c7ac44ed71e2 Mon Sep 17 00:00:00 2001
From: Kyle M Hall <kyle@bywatersolutions.com>
Date: Fri, 26 Apr 2019 10:59:17 -0400
Subject: [PATCH] Bug 20256: (QA follow-up) Redirect to record details page if
 user cannot edit this item

Signed-off-by: Bob Bennhoff - CLiC <bbennhoff@clicweb.org>
---
 cataloguing/additem.pl | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/cataloguing/additem.pl b/cataloguing/additem.pl
index be17810b5e..0028de9c55 100755
--- a/cataloguing/additem.pl
+++ b/cataloguing/additem.pl
@@ -436,6 +436,13 @@ my ($template, $loggedinuser, $cookie)
 
 # Does the user have a restricted item editing permission?
 my $patron = Koha::Patrons->find( $loggedinuser );
+
+my $item = $itemnumber ? Koha::Items->find( $itemnumber ) : undef;
+if ( $item && !$patron->can_edit_item( $item ) ) {
+    print $input->redirect("/cgi-bin/koha/catalogue/detail.pl?biblionumber=$biblionumber");
+    exit;
+}
+
 my $uid = $patron->userid;
 my $restrictededition = $uid ? haspermission($uid,  {'editcatalogue' => 'edit_items_restricted'}) : undef;
 # In case user is a superlibrarian, editing is not restricted
@@ -750,7 +757,6 @@ if ($op eq "additem") {
     if ($exist_itemnumber && $exist_itemnumber != $itemnumber) {
         push @errors,"barcode_not_unique";
     } else {
-        my $item = Koha::Items->find($itemnumber );
         my $newitem = ModItemFromMarc($itemtosave, $biblionumber, $itemnumber);
         $itemnumber = q{};
         my $olditemlost = $item->itemlost;
@@ -868,10 +874,10 @@ foreach my $field (@fields) {
 
         if ( C4::Context->preference('EasyAnalyticalRecords') ) {
             foreach my $hostitemnumber (@hostitemnumbers) {
-                my $item = Koha::Items->find( $hostitemnumber );
+                my $hostitem = Koha::Items->find( $hostitemnumber );
                 if ($this_row{itemnumber} eq $hostitemnumber) {
                     $this_row{hostitemflag} = 1;
-                    $this_row{hostbiblionumber}= $item->biblio->biblionumber;
+                    $this_row{hostbiblionumber}= $hostitem->biblio->biblionumber;
                     last;
                 }
             }
-- 
2.24.3 (Apple Git-128)