added API call for approving a pending address
authorerickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Wed, 14 Jan 2009 22:18:54 +0000 (22:18 +0000)
committererickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Wed, 14 Jan 2009 22:18:54 +0000 (22:18 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@11832 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/src/perlmods/OpenILS/Application/Actor.pm

index 96870cb..571b65e 100644 (file)
@@ -2866,6 +2866,8 @@ sub new_flesh_user {
        if( grep { $_ eq 'addresses' } @$fields ) {
 
                $user->addresses([]) unless @{$user->addresses};
+        # don't expose "replaced" addresses by default
+        $user->addresses([grep {$_->id >= 0} @{$user->addresses}]);
        
                if( ref $user->billing_address ) {
                        unless( grep { $user->billing_address->id == $_->id } @{$user->addresses} ) {
@@ -3125,6 +3127,29 @@ sub merge_users {
 }
 
 
+__PACKAGE__->register_method (
+       method          => 'approve_user_address',
+       api_name        => 'open-ils.actor.user.pending_address.approve',
+       signature       => {
+        desc => q/
+        /
+    }
+);
+
+sub approve_user_address {
+    my($self, $conn, $auth, $addr_id) = @_;
+    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;
+    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]
+        or return $e->die_event;
+    $e->commit;
+    return [values %$result]->[0]; 
+}
+
 
 __PACKAGE__->register_method (
        method          => 'retrieve_friends',