bug 4808: allow limited-permission circ operators to print receipts
authorGalen Charlton <gmcharlt@gmail.com>
Fri, 2 Jul 2010 18:55:41 +0000 (14:55 -0400)
committerGalen Charlton <gmcharlt@gmail.com>
Fri, 2 Jul 2010 18:57:25 +0000 (14:57 -0400)
Staff users now only need circulation privileges to print
checkout receipts and slips; the 'borrowers' permission, which
allows editing patron records, is no longer required.

Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
koha-tmpl/intranet-tmpl/prog/en/includes/circ-toolbar.inc
members/moremember.pl

index 47815d7..976de15 100644 (file)
@@ -52,7 +52,9 @@ function update_child() {
 
        function yuiToolbar() {
            var printmenu = [
+            <!-- TMPL_IF NAME="CAN_user_borrowers" -->
                { text: _("Print Page"), onclick: {fn: function(){printx_window("page")}} },
+            <!-- /TMPL_IF -->
                { text: _("Print Slip"), onclick: {fn: function(){printx_window("slip")}} },
                { text: _("Quick Slip"), onclick: {fn: function(){printx_window("qslip")}} }
            ];
index 4d4d9bb..34a3e09 100755 (executable)
@@ -76,10 +76,23 @@ for my $failedret (@failedreturns) { $return_failed{$failedret} = 1; }
 my $template_name;
 my $quickslip = 0;
 
-if    ($print eq "page") { $template_name = "members/moremember-print.tmpl";   }
-elsif ($print eq "slip") { $template_name = "members/moremember-receipt.tmpl"; }
-elsif ($print eq "qslip") { $template_name = "members/moremember-receipt.tmpl"; $quickslip = 1; }
-else {                     $template_name = "members/moremember.tmpl";         }
+my $flagsrequired;
+if ($print eq "page") {
+    $template_name = "members/moremember-print.tmpl";
+    $flagsrequired = { borrowers => 1 };
+} elsif ($print eq "slip") {
+    $template_name = "members/moremember-receipt.tmpl";
+    # circ staff who process checkouts but can't edit
+    # patrons still need to be able to print receipts
+    $flagsrequired =  { circulate => "circulate_remaining_permissions" };
+} elsif ($print eq "qslip") {
+    $template_name = "members/moremember-receipt.tmpl";
+    $quickslip = 1;
+    $flagsrequired =  { circulate => "circulate_remaining_permissions" };
+} else {
+    $template_name = "members/moremember.tmpl";
+    $flagsrequired = { borrowers => 1 };
+}
 
 my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
     {
@@ -87,7 +100,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
         query           => $input,
         type            => "intranet",
         authnotrequired => 0,
-        flagsrequired   => { borrowers => 1 },
+        flagsrequired   => $flagsrequired,
         debug           => 1,
     }
 );