From 0a6ca7bcb98ba6201f88385980c7896257cd8dc1 Mon Sep 17 00:00:00 2001 From: erickson Date: Thu, 25 Jun 2009 03:02:03 +0000 Subject: [PATCH] added batch hold reset call git-svn-id: svn://svn.open-ils.org/ILS/trunk@13463 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- .../src/perlmods/OpenILS/Application/Circ/Holds.pm | 28 +++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Circ/Holds.pm b/Open-ILS/src/perlmods/OpenILS/Application/Circ/Holds.pm index 2e28e09053..ebb33783ee 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/Circ/Holds.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Circ/Holds.pm @@ -948,13 +948,39 @@ sub reset_hold { my $reqr; my ($hold, $evt) = $U->fetch_hold($holdid); return $evt if $evt; - ($reqr, $evt) = $U->checksesperm($auth, 'UPDATE_HOLD'); # XXX stronger permission + ($reqr, $evt) = $U->checksesperm($auth, 'UPDATE_HOLD'); return $evt if $evt; $evt = _reset_hold($self, $reqr, $hold); return $evt if $evt; return 1; } + +__PACKAGE__->register_method( + method => 'reset_hold_batch', + api_name => 'open-ils.circ.hold.reset.batch' +); + +sub reset_hold_batch { + my($self, $conn, $auth, $hold_ids) = @_; + + my $e = new_editor(authtoken => $auth); + return $e->event unless $e->checkauth; + + for my $hold_id ($hold_ids) { + + my $hold = $e->retrieve_action_hold_request( + [$hold_id, {flesh => 1, flesh_fields => {ahr => ['usr']}}]) + or return $e->event; + + next unless $e->allowed('UPDATE_HOLD', $hold->usr->home_ou); + _reset_hold($self, $e->requestor, $hold); + } + + return 1; +} + + sub _reset_hold { my ($self, $reqr, $hold) = @_; -- 2.11.0