From: dbs Date: Tue, 20 Apr 2010 14:12:58 +0000 (+0000) Subject: Hmm. Not sure how this got doubled up, but it sure makes Apache unhappy. X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=2748238e27503156728fe67eb3862e581a4a5b22;p=evergreen%2Fbjwebb.git Hmm. Not sure how this got doubled up, but it sure makes Apache unhappy. git-svn-id: svn://svn.open-ils.org/ILS/trunk@16279 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- diff --git a/Open-ILS/src/perlmods/OpenILS/WWW/PasswordReset.pm b/Open-ILS/src/perlmods/OpenILS/WWW/PasswordReset.pm index 6b76ecd24..410e7b216 100644 --- a/Open-ILS/src/perlmods/OpenILS/WWW/PasswordReset.pm +++ b/Open-ILS/src/perlmods/OpenILS/WWW/PasswordReset.pm @@ -211,208 +211,3 @@ sub request_password_reset { 1; # vim: et:ts=4:sw=4 -package OpenILS::WWW::PasswordReset; - -# Copyright (C) 2010 Laurentian University -# Dan Scott -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -use strict; use warnings; - -use Apache2::Log; -use Apache2::Const -compile => qw(OK REDIRECT DECLINED NOT_FOUND :log); -use APR::Const -compile => qw(:error SUCCESS); -use Apache2::RequestRec (); -use Apache2::RequestIO (); -use Apache2::RequestUtil; -use CGI; -use Template; - -use OpenSRF::EX qw(:try); -use OpenSRF::Utils qw/:datetime/; -use OpenSRF::Utils::Cache; -use OpenSRF::System; -use OpenSRF::AppSession; - -use OpenILS::Utils::Fieldmapper; -use OpenSRF::Utils::Logger qw/$logger/; -use OpenILS::Application::AppUtils; -use OpenILS::Utils::CStoreEditor qw/:funcs/; - -my $log = 'OpenSRF::Utils::Logger'; -my $U = 'OpenILS::Application::AppUtils'; - -my ($bootstrap, $actor, $templates); -my $i18n = {}; - -sub child_init { - OpenSRF::System->bootstrap_client( config_file => $bootstrap ); - - my $conf = OpenSRF::Utils::SettingsClient->new(); - my $idl = $conf->config_value("IDL"); - Fieldmapper->import(IDL => $idl); - $templates = $conf->config_value("dirs", "templates"); - $actor = OpenSRF::AppSession->create('open-ils.actor'); - load_i18n(); -} - -sub password_reset { - my $apache = shift; - return Apache2::Const::DECLINED if (-e $apache->filename); - - $apache->content_type('text/html'); - - my $cgi = new CGI; - my $ctx = {}; - - $ctx->{'uri'} = $apache->uri; - - # Get our locale from the URL - (my $locale = $apache->path_info) =~ s{^.*?/([a-z]{2}-[A-Z]{2})/.*?$}{$1}; - if (!$locale) { - $locale = 'en-US'; - } - - # If locale exists, use it; otherwise fall back to en-US - if (exists $i18n->{$locale}) { - $ctx->{'i18n'} = $i18n->{$locale}; - } else { - $ctx->{'i18n'} = $i18n->{'en-US'}; - } - - my $tt = Template->new({ - INCLUDE_PATH => $templates - }) || die "$Template::ERROR\n"; - - # Get our UUID: if no UUID, then display barcode / username / email prompt - (my $uuid = $apache->path_info) =~ s{^/$locale/([^/]*?)$}{$1}; - $logger->info("Password reset: UUID = $uuid"); - - if (!$uuid) { - request_password_reset($apache, $cgi, $tt, $ctx); - } else { - reset_password($apache, $cgi, $tt, $ctx, $uuid); - } -} - -sub reset_password { - my ($apache, $cgi, $tt, $ctx, $uuid) = @_; - - my $password_1 = $cgi->param('pwd1'); - my $password_2 = $cgi->param('pwd2'); - - $ctx->{'title'} = $ctx->{'i18n'}{'TITLE'}; - $ctx->{'password_prompt'} = $ctx->{'i18n'}{'PASSWORD_PROMPT'}; - $ctx->{'password_prompt2'} = $ctx->{'i18n'}{'PASSWORD_PROMPT2'}; - - # In case non-matching passwords slip through our funky Web interface - if ($password_1 and $password_2 and ($password_1 ne $password_2)) { - $apache->status(Apache2::Const::DECLINED); - $ctx->{'status'} = { - style => 'error', - msg => $ctx->{'i18n'}{'NO_MATCH'} - }; - $tt->process('password-reset/reset-form.tt2', $ctx) - || die $tt->error(); - return Apache2::Const::OK; - } - - if ($password_1 and $password_2 and ($password_1 eq $password_2)) { - my $response = $actor->request('open-ils.actor.patron.password_reset.commit', $uuid, $password_1)->gather(); - if (ref($response) && - $response->{'textcode'} && - $response->{'textcode'} eq 'PATRON_NOT_AN_ACTIVE_PASSWORD_RESET_REQUEST') { - $apache->status(Apache2::Const::DECLINED); - $ctx->{'status'} = { - style => 'error', - msg => $ctx->{'i18n'}{'NOT_ACTIVE'} - - }; - $tt->process('password-reset/reset-form.tt2', $ctx) - || die $tt->error(); - return Apache2::Const::OK; - } - $ctx->{'status'} = { - style => 'success', - msg => $ctx->{'i18n'}{'SUCCESS'} - }; - } - - # Either the password change was successful, or this is their first time through - $tt->process('password-reset/reset-form.tt2', $ctx) - || die $tt->error(); - - return Apache2::Const::OK; -} - -# Load our localized strings - lame, need to convert to Locale::Maketext -sub load_i18n { - foreach my $string_bundle (glob("$templates/password-reset/strings.*")) { - open(I18NFH, '<', $string_bundle); - (my $locale = $string_bundle) =~ s/^.*\.([a-z]{2}-[A-Z]{2})$/$1/; - $logger->debug("Loaded locale [$locale] from file: [$string_bundle]"); - while() { - my ($string_id, $string) = ($_ =~ m/^(.+?)=(.*?)$/); - $i18n->{$locale}{$string_id} = $string; - } - close(I18NFH); - } -} - -sub request_password_reset { - my ($apache, $cgi, $tt, $ctx) = @_; - - my $barcode = $cgi->param('barcode'); - my $username = $cgi->param('username'); - my $email = $cgi->param('email'); - - if (!($barcode or $username or $email)) { - $apache->status(Apache2::Const::OK); - $ctx->{'status'} = { - style => 'plain', - msg => $ctx->{'i18n'}{'IDENTIFY_YOURSELF'} - }; - $tt->process('password-reset/request-form.tt2', $ctx) - || die $tt->error(); - return Apache2::Const::OK; - } elsif ($barcode) { - my $response = $actor->request('open-ils.actor.patron.password_reset.request', 'barcode', $barcode)->gather(); - $apache->status(Apache2::Const::OK); - $ctx->{'status'} = { - style => 'plain', - msg => $ctx->{'i18n'}{'REQUEST_SUCCESS'} - }; - # Hide form - $tt->process('password-reset/request-form.tt2', $ctx) - || die $tt->error(); - return Apache2::Const::OK; - } elsif ($username) { - my $response = $actor->request('open-ils.actor.patron.password_reset.request', 'username', $username)->gather(); - $apache->status(Apache2::Const::OK); - $ctx->{'status'} = { - style => 'plain', - msg => $ctx->{'i18n'}{'REQUEST_SUCCESS'} - }; - # Hide form - $tt->process('password-reset/request-form.tt2', $ctx) - || die $tt->error(); - return Apache2::Const::OK; - } -} - -1; - -# vim: et:ts=4:sw=4