From: Bill Erickson Date: Thu, 1 Aug 2013 20:52:18 +0000 (-0400) Subject: LP1207396 Patron self-registration web form X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=16707d2094998bd37a0e32d9d2a70d78ae3e124d;p=evergreen%2Fequinox.git LP1207396 Patron self-registration web form Signed-off-by: Bill Erickson --- diff --git a/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader.pm b/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader.pm index 0838a29eb5..24ad25786b 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader.pm @@ -23,6 +23,7 @@ use OpenILS::WWW::EGCatLoader::Search; use OpenILS::WWW::EGCatLoader::Record; use OpenILS::WWW::EGCatLoader::Container; use OpenILS::WWW::EGCatLoader::SMS; +use OpenILS::WWW::EGCatLoader::Register; my $U = 'OpenILS::Application::AppUtils'; @@ -138,6 +139,7 @@ sub load { return $self->redirect_ssl unless $self->cgi->https; return $self->load_password_reset if $path =~ m|opac/password_reset|; return $self->load_logout if $path =~ m|opac/logout|; + return $self->load_patron_reg if $path =~ m|opac/register|; if($path =~ m|opac/login|) { return $self->load_login unless $self->editor->requestor; # already logged in? diff --git a/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Register.pm b/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Register.pm new file mode 100644 index 0000000000..d808bee7e8 --- /dev/null +++ b/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Register.pm @@ -0,0 +1,59 @@ +package OpenILS::WWW::EGCatLoader; +use strict; use warnings; +use Apache2::Const -compile => qw(OK FORBIDDEN HTTP_INTERNAL_SERVER_ERROR); +use OpenSRF::Utils::Logger qw/$logger/; +use OpenILS::Utils::Fieldmapper; +use OpenILS::Application::AppUtils; +use OpenILS::Event; +my $U = 'OpenILS::Application::AppUtils'; + +sub load_patron_reg { + my $self = shift; + my $ctx = $self->ctx; + my $cgi = $self->cgi; + $ctx->{register} = {}; + + # just loading the form + return Apache2::Const::OK + unless $cgi->request_method eq 'POST'; + + my $user = Fieldmapper::staging::user_stage->new; + my $addr = Fieldmapper::staging::mailing_address_stage->new; + + # user + foreach (grep /^stgu\./, $cgi->param) { + my $val = $cgi->param($_); + # TODO validate + s/^stgu\.//g; + $user->$_($val); + } + + # address + foreach (grep /^stgma\./, $cgi->param) { + my $val = $cgi->param($_); + # TODO validate + s/^stgma\.//g; + $addr->$_($val); + } + + # user.stage.create will generate a temporary usrname and + # link the user and address objects via this username in the DB. + my $resp = $U->simplereq( + 'open-ils.actor', + 'open-ils.actor.user.stage.create', + $user, $addr + ); + + if (!$resp or ref $resp) { + + $logger->warn("Patron self-reg failed ".($resp || '')); + $ctx->{register}{error} = 1; + + } else { + + $logger->info("Patron self-reg success; usrname $resp"); + $ctx->{register}{success} = 1; + } + + return Apache2::Const::OK; +} diff --git a/Open-ILS/src/templates/opac/css/style.css.tt2 b/Open-ILS/src/templates/opac/css/style.css.tt2 index 00d90d975d..6c7adc4536 100644 --- a/Open-ILS/src/templates/opac/css/style.css.tt2 +++ b/Open-ILS/src/templates/opac/css/style.css.tt2 @@ -1536,3 +1536,22 @@ a.preflib_change { color: [% css_colors.text_invert %]; text-align: center; } + +#main-content-register { + margin-left: 40px; + font-size: 120%; +} + +#main-content-register table { + padding: 20px; + margin-top: 18px; + border-collapse: collapse; +} + +#main-content-register td { + text-align: left; +} + +#main-content-register td:not(:first-child) { + padding-left: 20px; +} diff --git a/Open-ILS/src/templates/opac/parts/footer.tt2 b/Open-ILS/src/templates/opac/parts/footer.tt2 index 236805526b..cf43f7c4e2 100644 --- a/Open-ILS/src/templates/opac/parts/footer.tt2 +++ b/Open-ILS/src/templates/opac/parts/footer.tt2 @@ -1,8 +1,13 @@