From 0f690e22b7b15e56140c6f08c7167a53a516fa7c Mon Sep 17 00:00:00 2001 From: erickson Date: Thu, 15 Jan 2009 21:58:58 +0000 Subject: [PATCH] added the ability to update a pending address inline while approving it git-svn-id: svn://svn.open-ils.org/ILS/trunk@11856 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Open-ILS/src/perlmods/OpenILS/Application/Actor.pm | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Actor.pm b/Open-ILS/src/perlmods/OpenILS/Application/Actor.pm index 2a5d5456c1..010f9c7a94 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/Actor.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Actor.pm @@ -3151,14 +3151,19 @@ __PACKAGE__->register_method ( ); sub approve_user_address { - my($self, $conn, $auth, $addr_id) = @_; + my($self, $conn, $auth, $addr) = @_; my $e = new_editor(xact => 1, authtoken => $auth); return $e->die_event unless $e->checkauth; - my $addr = $e->retrieve_actor_user_address($addr_id) - or return $e->die_event; + if(ref $addr) { + # if the caller passes an address object, assume they want to + # update it first before approving it + $e->update_actor_user_address($addr) or return $e->die_event; + } else { + $addr = $e->retrieve_actor_user_address($addr) or return $e->die_event; + } my $user = $e->retrieve_actor_user($addr->usr); return $e->die_event unless $e->allowed('UPDATE_USER', $user->home_ou); - my $result = $e->json_query({from => ['actor.approve_pending_address', $addr_id]})->[0] + my $result = $e->json_query({from => ['actor.approve_pending_address', $addr->id]})->[0] or return $e->die_event; $e->commit; return [values %$result]->[0]; -- 2.11.0