added initial staged user creation api (for patron self-registration)
authorerickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Tue, 23 Jun 2009 14:02:31 +0000 (14:02 +0000)
committererickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Tue, 23 Jun 2009 14:02:31 +0000 (14:02 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@13442 dcc99617-32d9-48b4-a31d-7c20da2025e4

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

index 5d3107d..8930779 100644 (file)
@@ -3315,5 +3315,42 @@ sub update_events {
 }
 
 
+
+__PACKAGE__->register_method (
+       method          => 'create_user_stage',
+       api_name    => 'open-ils.actor.user.stage.create',
+);
+
+sub create_user_stage {
+    my($self, $conn, $user, $mail_addr, $bill_addr) = @_; # more?
+
+    return 0 unless $U->ou_ancestor_setting_value('opac.allow_pending_user');
+    return OpenILS::Event->new('BAD_PARAMS') unless $user;
+
+    my $e = new_editor(xact => 1);
+
+    my $uname = $U->create_uuid_string;
+    $user->usrname($uname);
+
+    $e->create_staging_user_stage($user) or return $e->die_event;
+
+    if($mail_addr) {
+        $mail_addr->usrname($uname);
+        $e->create_staging_mailing_address_stage($mail_addr) or return $e->die_event;
+    }
+
+    if($bill_addr) {
+        $bill_addr->usrname($uname);
+        $e->create_staging_billing_address_stage($bill_addr) or return $e->die_event;
+    }
+
+    $e->commit;
+    $conn->respond_complete($uname);
+
+    $U->create_trigger_event('stgu.create', $user, $user->home_ou);
+    return undef;
+}
+
+
 1;