From f159fab19bad3bcda8879413adeb44b2edb2fb7f Mon Sep 17 00:00:00 2001 From: Colin Kuskie Date: Tue, 19 Oct 2010 15:22:42 -0700 Subject: [PATCH] Make the password recovery email templatable. Includes i18n, help docs, upgrade sub, template package and code. Fixes bug #11918. --- docs/changelog/7.x.x.txt | 1 + .../packages-7.10.3/root_import_auth.wgpkg | Bin 0 -> 9752 bytes docs/upgrades/upgrade_7.10.2-7.10.3.pl | 11 +++++++ lib/WebGUI/Auth/WebGUI.pm | 18 +++++++++-- lib/WebGUI/Help/AuthWebGUI.pm | 10 +++++++ lib/WebGUI/i18n/English/AuthWebGUI.pm | 28 +++++++++++++++++- 6 files changed, 65 insertions(+), 3 deletions(-) create mode 100644 docs/upgrades/packages-7.10.3/root_import_auth.wgpkg diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt index b0bc4b9c5..8e39edab4 100644 --- a/docs/changelog/7.x.x.txt +++ b/docs/changelog/7.x.x.txt @@ -14,6 +14,7 @@ - fixed #11912: Corrupt cookie causes server 500 errors - fixed #11919: Survey rendering with section text - fixed #11916: Collaboration System security + - fixed #11918: Make password recovery email templatable 7.10.2 - fixed #11884: Editing Templates impossible / Code editor not loaded diff --git a/docs/upgrades/packages-7.10.3/root_import_auth.wgpkg b/docs/upgrades/packages-7.10.3/root_import_auth.wgpkg new file mode 100644 index 0000000000000000000000000000000000000000..21f95ac781c1220f6cfed20dfdbfb3c4ba61db95 GIT binary patch literal 9752 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 literal 0 HcmV?d00001 diff --git a/docs/upgrades/upgrade_7.10.2-7.10.3.pl b/docs/upgrades/upgrade_7.10.2-7.10.3.pl index e34b26b8a..3acbc26fe 100644 --- a/docs/upgrades/upgrade_7.10.2-7.10.3.pl +++ b/docs/upgrades/upgrade_7.10.2-7.10.3.pl @@ -33,6 +33,7 @@ my $session = start(); # this line required # upgrade functions go here pruneInboxMessagesFromDeletedUsers($session); addTemplateToNotifyAboutVersionTag($session); +addPasswordRecoveryEmailTemplate($session); finish($session); # this line required @@ -83,6 +84,16 @@ sub addTemplateToNotifyAboutVersionTag { } +#---------------------------------------------------------------------------- +# Describe what our function does +sub addPasswordRecoveryEmailTemplate { + my $session = shift; + print "\tAdd a template for the password recovery email." unless $quiet; + $session->setting->add('webguiPasswordRecoveryEmailTemplate', 'sK_0zVw4kwdJ1sqREIsSzA'); + print "...DONE!\n" unless $quiet; +} + + # -------------- DO NOT EDIT BELOW THIS LINE -------------------------------- #---------------------------------------------------------------------------- diff --git a/lib/WebGUI/Auth/WebGUI.pm b/lib/WebGUI/Auth/WebGUI.pm index f96fc4c6b..ca5f46e28 100644 --- a/lib/WebGUI/Auth/WebGUI.pm +++ b/lib/WebGUI/Auth/WebGUI.pm @@ -22,6 +22,7 @@ use WebGUI::Storage; use WebGUI::User; use WebGUI::Utility; use WebGUI::Form::Captcha; +use WebGUI::Macro; use Encode (); our @ISA = qw(WebGUI::Auth); @@ -609,6 +610,13 @@ sub editUserSettingsForm { -label => $i18n->get("password recovery template"), -hoverHelp => $i18n->get("password recovery template help") ); + $f->template( + -name => "webguiPasswordRecoveryEmailTemplate", + -value => $self->session->setting->get('webguiPasswordRecoveryEmailTemplate'), + -label => $i18n->get('Password Recovery Email Template'), + -hoverHelp => $i18n->get("password recovery email template help"), + -namespace => "Auth/WebGUI/RecoveryEmail", + ); $f->template( -name => "webguiWelcomeMessageTemplate", -value => $self->session->setting->get("webguiWelcomeMessageTemplate"), @@ -678,6 +686,8 @@ sub editUserSettingsFormSave { $s->set("webguiPasswordRecoveryTemplate", $f->process("webguiPasswordRecoveryTemplate","template")); $s->set("webguiWelcomeMessageTemplate", $f->process("webguiWelcomeMessageTemplate","template")); $s->set("webguiAccountActivationTemplate", $f->process("webguiAccountActivationTemplate","template")); + $s->set("webguiPasswordRecoveryTemplate", $f->process("webguiPasswordRecoveryTemplate","template")); + $s->set("webguiPasswordRecoveryEmailTemplate", $f->process("webguiPasswordRecoveryEmailTemplate","template")); if (@errors) { return \@errors; @@ -1102,7 +1112,6 @@ sub emailRecoverPasswordFinish { # generate information necessry to proceed my $recoveryGuid = $session->id->generate(); - my $url = $session->url->getSiteURL; my $userId = $user->userId; #get the user guid $email = $user->profileField('email'); @@ -1116,7 +1125,12 @@ sub emailRecoverPasswordFinish { $self->saveParams($userId, 'WebGUI', $authsettings); my $mail = WebGUI::Mail::Send->create($session, { to=>$email, subject=>$i18n->get('WebGUI password recovery')}); - $mail->addText($i18n->get('recover password email text1', 'AuthWebGUI') . $url. ". \n\n".$i18n->get('recover password email text2', 'AuthWebGUI')." \n\n ".$url."?op=auth;method=emailResetPassword;token=$recoveryGuid"."\n\n ". $i18n->get('recover password email text3', 'AuthWebGUI')); + my $vars = { }; + $vars->{recoverPasswordUrl} = $session->url->append($session->url->getSiteURL,'?op=auth;method=emailResetPassword;token='.$recoveryGuid); + my $template = WebGUI::Asset->newByDynamicClass($session, $session->setting->get('webguiPasswordRecoveryEmailTemplate')); + my $emailText = $template->process($vars); + WebGUI::Macro::process($session, \$emailText); + $mail->addText($emailText); $mail->queue; return "

". $i18n->get('recover password banner', 'AuthWebGUI')."



". $i18n->get('email recover password finish message', 'AuthWebGUI') . "

"; } diff --git a/lib/WebGUI/Help/AuthWebGUI.pm b/lib/WebGUI/Help/AuthWebGUI.pm index 04cec68f7..124a92c7b 100644 --- a/lib/WebGUI/Help/AuthWebGUI.pm +++ b/lib/WebGUI/Help/AuthWebGUI.pm @@ -129,6 +129,16 @@ our $HELP = { related => [] }, + 'webgui authentication password recovery email template' => { + title => 'recovery email template title', + body => '', + variables => [ + { 'name' => 'recoverPasswordUrl', }, + ], + fields => [], + related => [] + }, + 'webgui authentication password expiration template' => { title => 'expired template title', body => '', diff --git a/lib/WebGUI/i18n/English/AuthWebGUI.pm b/lib/WebGUI/i18n/English/AuthWebGUI.pm index a3f2f3bec..c697102da 100644 --- a/lib/WebGUI/i18n/English/AuthWebGUI.pm +++ b/lib/WebGUI/i18n/English/AuthWebGUI.pm @@ -735,8 +735,9 @@ Settings screen, displayed as hoverhelp.|, }, 'recover password email text1' => { - message => q|We have received your request to change the password for |, + message => q|We have received your request to change the password for %s.|, lastUpdated => 1189780432, + context => q|%s is the URL of the site|, }, 'recover password email text2' => { @@ -823,6 +824,31 @@ Settings screen, displayed as hoverhelp.|, lastUpdated => 0, context => q|Description of the webguiUseEmailAsUsername field, used as hoverhelp on the Auth tab of the Edit Settings screen.|, }, + + 'Password Recovery Email Template' => { + message => 'Password Recovery Email Template', + lastUpdated => 0, + context => q|Label in the auth settings|, + }, + + 'password recovery email template help' => { + message => 'Choose a template to style the emails sent out for recovering passwords', + lastUpdated => 0, + context => q|Label in the auth settings|, + }, + + 'recovery email template title' => { + message => 'WebGUI Authentication Password Recovery Email Template', + lastUpdated => 0, + context => q|template help|, + }, + + 'recoverPasswordUrl' => { + message => 'The URL for the user to visit to reset their password.', + lastUpdated => 0, + context => q|template help|, + }, + }; 1;