View | Details | Raw Unified | Return to bug 13895
Collapse All | Expand All

(-)a/Koha/REST/V1/Checkout.pm (-11 lines)
Lines 105-121 sub renew { Link Here
105
    my $borrowernumber = $checkout->borrowernumber;
105
    my $borrowernumber = $checkout->borrowernumber;
106
    my $itemnumber = $checkout->itemnumber;
106
    my $itemnumber = $checkout->itemnumber;
107
107
108
    # Disallow renewal if OpacRenewalAllowed is off and user has insufficient rights
109
    unless (C4::Context->preference('OpacRenewalAllowed')) {
110
        my $user = $c->stash('koha.user');
111
        unless ($user && haspermission($user->userid, { circulate => "circulate_remaining_permissions" })) {
112
            return $c->render(
113
                status => 403,
114
                openapi => { error => "Opac Renewal not allowed"}
115
            );
116
        }
117
    }
118
119
    my ($can_renew, $error) = C4::Circulation::CanBookBeRenewed(
108
    my ($can_renew, $error) = C4::Circulation::CanBookBeRenewed(
120
        $borrowernumber, $itemnumber);
109
        $borrowernumber, $itemnumber);
121
110
(-)a/t/db_dependent/api/v1/checkouts.t (-10 / +1 lines)
Lines 17-23 Link Here
17
17
18
use Modern::Perl;
18
use Modern::Perl;
19
19
20
use Test::More tests => 57;
20
use Test::More tests => 54;
21
use Test::MockModule;
21
use Test::MockModule;
22
use Test::Mojo;
22
use Test::Mojo;
23
use t::lib::Mocks;
23
use t::lib::Mocks;
Lines 187-200 $t->request_ok($tx) Link Here
187
              required_permissions => { circulate => "circulate_remaining_permissions" }
187
              required_permissions => { circulate => "circulate_remaining_permissions" }
188
						});
188
						});
189
189
190
t::lib::Mocks::mock_preference( "OpacRenewalAllowed", 0 );
191
$tx = $t->ua->build_tx(PUT => "/api/v1/checkouts/" . $issue2->issue_id);
192
$tx->req->cookies({name => 'CGISESSID', value => $patron_session->id});
193
$t->request_ok($tx)
194
  ->status_is(403)
195
  ->json_is({ error => "Opac Renewal not allowed" });
196
197
t::lib::Mocks::mock_preference( "OpacRenewalAllowed", 1 );
198
$tx = $t->ua->build_tx(PUT => "/api/v1/checkouts/" . $issue2->issue_id);
190
$tx = $t->ua->build_tx(PUT => "/api/v1/checkouts/" . $issue2->issue_id);
199
$tx->req->cookies({name => 'CGISESSID', value => $session->id});
191
$tx->req->cookies({name => 'CGISESSID', value => $session->id});
200
$t->request_ok($tx)
192
$t->request_ok($tx)
201
- 

Return to bug 13895