From: erickson Date: Tue, 23 Jun 2009 14:02:31 +0000 (+0000) Subject: added initial staged user creation api (for patron self-registration) X-Git-Tag: sprint4-merge-nov22~9778 X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=e5a6bcd2589661ad859e90de5fe022ecb429a36a;p=working%2FEvergreen.git added initial staged user creation api (for patron self-registration) git-svn-id: svn://svn.open-ils.org/ILS/trunk@13442 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Actor.pm b/Open-ILS/src/perlmods/OpenILS/Application/Actor.pm index 5d3107d7ad..8930779ef9 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/Actor.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Actor.pm @@ -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;