From 297dc830af7f13f9bd5d3998783295037350e391 Mon Sep 17 00:00:00 2001 From: Maxime Besson Date: Wed, 31 Mar 2021 12:08:24 +0200 Subject: [PATCH] Update mail templates to no longer use string substitution (#2495) --- .../lib/Lemonldap/NG/Portal/2F/Mail2F.pm | 3 ++ .../Portal/Plugins/CertificateResetByMail.pm | 10 ++++++- .../NG/Portal/Plugins/MailPasswordReset.pm | 17 +++++++++-- .../Lemonldap/NG/Portal/Plugins/Register.pm | 30 +++++++++++++------ .../site/templates/common/mail_2fcode.tpl | 4 +-- .../common/mail_certificateConfirm.tpl | 4 +-- .../common/mail_certificateReset.tpl | 2 +- .../site/templates/common/mail_confirm.tpl | 4 +-- .../site/templates/common/mail_footer.tpl | 2 +- .../site/templates/common/mail_password.tpl | 4 +-- .../common/mail_register_confirm.tpl | 4 +-- .../templates/common/mail_register_done.tpl | 8 ++--- 12 files changed, 63 insertions(+), 29 deletions(-) diff --git a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/2F/Mail2F.pm b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/2F/Mail2F.pm index c78e5a3fe..72677248e 100644 --- a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/2F/Mail2F.pm +++ b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/2F/Mail2F.pm @@ -103,12 +103,15 @@ sub run { 'mail_2fcode', filter => $tr, params => { + code => $code, }, ); $html = 1; } # Replace variables in body + # FIXME: kept for compatibility with 2.0.0 mail templates + # in future versions this should only happen for plaintext emails $body =~ s/\$code/$code/g; $body =~ s/\$(\w+)/$req->{sessionInfo}->{$1} || ''/ge; diff --git a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Plugins/CertificateResetByMail.pm b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Plugins/CertificateResetByMail.pm index bc7a66437..a9b93402c 100644 --- a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Plugins/CertificateResetByMail.pm +++ b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Plugins/CertificateResetByMail.pm @@ -379,12 +379,18 @@ sub _certificateReset { $req, 'mail_certificateConfirm', filter => $tr, - params => {}, + params => { + expMailDate => $req->data->{expMailDate}, + expMailTime => $req->data->{expMailTime}, + url => $url, + }, ); $html = 1; } # Replace variables in body + # FIXME: kept for compatibility with 2.0.0 mail templates + # in future versions this should only happen for plaintext emails $body =~ s/\$expMailDate/$req->data->{expMailDate}/ge; $body =~ s/\$expMailTime/$req->data->{expMailTime}/ge; $body =~ s/\$url/$url/g; @@ -563,6 +569,8 @@ sub modifyCertificate { } # Replace variables in body + # FIXME: kept for compatibility with 2.0.0 mail templates + # in future versions this should only happen for plaintext emails $body =~ s/\$(\w+)/$req->{sessionInfo}->{$1} || ''/ge; # Send mail diff --git a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Plugins/MailPasswordReset.pm b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Plugins/MailPasswordReset.pm index 91b99f0b8..0662e42d2 100644 --- a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Plugins/MailPasswordReset.pm +++ b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Plugins/MailPasswordReset.pm @@ -343,12 +343,18 @@ sub _reset { $req, 'mail_confirm', filter => $tr, - params => {}, + params => { + expMailDate => $req->data->{expMailDate}, + expMailTime => $req->data->{expMailTime}, + url => $url, + }, ); $html = 1; } # Replace variables in body + # FIXME: kept for compatibility with 2.0.0 mail templates + # in future versions this should only happen for plaintext emails $body =~ s/\$expMailDate/$req->data->{expMailDate}/ge; $body =~ s/\$expMailTime/$req->data->{expMailTime}/ge; $body =~ s/\$url/$url/g; @@ -503,6 +509,8 @@ sub changePwd { } my $body; my $html; + my $password = $req->data->{newpassword}; + if ( $self->conf->{mailBody} ) { # We use a specific text message, no html @@ -515,13 +523,16 @@ sub changePwd { $req, 'mail_password', filter => $tr, - params => {%tplPrms}, + params => { + %tplPrms, password => $password, + }, ); $html = 1; } # Replace variables in body - my $password = $req->data->{newpassword}; + # FIXME: kept for compatibility with 2.0.0 mail templates + # in future versions this should only happen for plaintext emails $body =~ s/\$password/$password/g; $body =~ s/\$(\w+)/$req->{sessionInfo}->{$1} || ''/ge; diff --git a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Plugins/Register.pm b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Plugins/Register.pm index a082552bc..3834a8b99 100644 --- a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Plugins/Register.pm +++ b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Plugins/Register.pm @@ -314,10 +314,17 @@ sub _register { $req, 'mail_register_confirm', filter => $tr, - params => {}, + params => { + expMailDate => $req->data->{expMailDate}, + expMailTime => $req->data->{expMailTime}, + url => $url, + %{ $req->data->{registerInfo} || {} }, + }, ); # Replace variables in body + # FIXME: kept for compatibility with 2.0.0 mail templates + # in future versions this should only happen for plaintext emails $body =~ s/\$expMailDate/$req->data->{expMailDate}/g; $body =~ s/\$expMailTime/$req->data->{expMailTime}/g; $body =~ s/\$url/$url/g; @@ -368,14 +375,6 @@ sub _register { my $body; my $html = 1; - # Use HTML template - $body = $self->loadMailTemplate( - $req, - 'mail_register_done', - filter => $tr, - params => {}, - ); - # Build portal url my $url = $self->conf->{portal}; $url =~ s#/*$##; @@ -387,7 +386,20 @@ sub _register { ( $req_url ? ( url => $req_url ) : () ), ); + # Use HTML template + $body = $self->loadMailTemplate( + $req, + 'mail_register_done', + filter => $tr, + params => { + url => $url, + %{ $req->data->{registerInfo} || {} }, + }, + ); + # Replace variables in body + # FIXME: kept for compatibility with 2.0.0 mail templates + # in future versions this should only happen for plaintext emails $body =~ s/\$url/$url/g; $body =~ s/\$(\w+)/$req->data->{registerInfo}->{$1}/ge; diff --git a/lemonldap-ng-portal/site/templates/common/mail_2fcode.tpl b/lemonldap-ng-portal/site/templates/common/mail_2fcode.tpl index b91add955..d78fa4e31 100644 --- a/lemonldap-ng-portal/site/templates/common/mail_2fcode.tpl +++ b/lemonldap-ng-portal/site/templates/common/mail_2fcode.tpl @@ -1,10 +1,10 @@ -Hello $cn,
+Hello ,

Your login code is -$code
+
diff --git a/lemonldap-ng-portal/site/templates/common/mail_certificateConfirm.tpl b/lemonldap-ng-portal/site/templates/common/mail_certificateConfirm.tpl index 871cf16a0..57d23b4d7 100644 --- a/lemonldap-ng-portal/site/templates/common/mail_certificateConfirm.tpl +++ b/lemonldap-ng-portal/site/templates/common/mail_certificateConfirm.tpl @@ -1,10 +1,10 @@

-Hello $cn,
+Hello ,

go - +" style="text-decoration:none;color:orange;"> Click here to reset your certificate

diff --git a/lemonldap-ng-portal/site/templates/common/mail_certificateReset.tpl b/lemonldap-ng-portal/site/templates/common/mail_certificateReset.tpl index df463ec7a..c6cef2b18 100644 --- a/lemonldap-ng-portal/site/templates/common/mail_certificateReset.tpl +++ b/lemonldap-ng-portal/site/templates/common/mail_certificateReset.tpl @@ -1,7 +1,7 @@

-Hello $cn,
+Hello ,

Your certificate has been successfully reset!

diff --git a/lemonldap-ng-portal/site/templates/common/mail_confirm.tpl b/lemonldap-ng-portal/site/templates/common/mail_confirm.tpl index 85a56b30a..383511bb8 100644 --- a/lemonldap-ng-portal/site/templates/common/mail_confirm.tpl +++ b/lemonldap-ng-portal/site/templates/common/mail_confirm.tpl @@ -1,10 +1,10 @@

-Hello $cn,
+Hello ,

go - +" style="text-decoration:none;color:orange;"> Click here to reset your password

diff --git a/lemonldap-ng-portal/site/templates/common/mail_footer.tpl b/lemonldap-ng-portal/site/templates/common/mail_footer.tpl index c5cd433da..d951c7918 100644 --- a/lemonldap-ng-portal/site/templates/common/mail_footer.tpl +++ b/lemonldap-ng-portal/site/templates/common/mail_footer.tpl @@ -4,7 +4,7 @@

This mail was sent automatically
The request was issued from IP -$ipAddr +

diff --git a/lemonldap-ng-portal/site/templates/common/mail_password.tpl b/lemonldap-ng-portal/site/templates/common/mail_password.tpl index 19f7b3932..56e85c0a2 100644 --- a/lemonldap-ng-portal/site/templates/common/mail_password.tpl +++ b/lemonldap-ng-portal/site/templates/common/mail_password.tpl @@ -1,12 +1,12 @@

-Hello $cn,
+Hello ,

Your new password is key -$password + Your password has been successfully changed! diff --git a/lemonldap-ng-portal/site/templates/common/mail_register_confirm.tpl b/lemonldap-ng-portal/site/templates/common/mail_register_confirm.tpl index 1a7fdb14a..954ee1dff 100644 --- a/lemonldap-ng-portal/site/templates/common/mail_register_confirm.tpl +++ b/lemonldap-ng-portal/site/templates/common/mail_register_confirm.tpl @@ -1,10 +1,10 @@

-Hello $firstname $lastname,
+Hello ,

go - +" style="text-decoration:none;color:orange;"> Click here to confirm your account registration

diff --git a/lemonldap-ng-portal/site/templates/common/mail_register_done.tpl b/lemonldap-ng-portal/site/templates/common/mail_register_done.tpl index 5b9326cf8..36b07bc5f 100644 --- a/lemonldap-ng-portal/site/templates/common/mail_register_done.tpl +++ b/lemonldap-ng-portal/site/templates/common/mail_register_done.tpl @@ -1,19 +1,19 @@

-Hello $firstname $lastname,
+Hello ,

Your account was successfully created.

Your login is go -$login +
Your password is key -$password +

-

Click here to access to portal

+

">Click here to access to portal