summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorlpsolit%gmail.com <>2009-01-08 17:09:46 +0100
committerlpsolit%gmail.com <>2009-01-08 17:09:46 +0100
commit558994bed534a4c979f6df8c2fba7d8c96c7d073 (patch)
tree697d20d0224be06cc68d2af93884a0aa49361707
parent11fa9ce3596363a4d4badd7960ae73e8dc535050 (diff)
downloadbugzilla-558994bed534a4c979f6df8c2fba7d8c96c7d073.tar.gz
bugzilla-558994bed534a4c979f6df8c2fba7d8c96c7d073.tar.xz
Bug 452519: Fix timezones in emails - Patch by Frédéric Buclin <LpSolit@gmail.com> r=wicked a=LpSolit
-rw-r--r--Bugzilla/Token.pm16
-rw-r--r--template/en/default/account/cancel-token.txt.tmpl2
-rw-r--r--template/en/default/account/email/change-new.txt.tmpl5
-rw-r--r--template/en/default/account/email/change-old.txt.tmpl5
-rw-r--r--template/en/default/account/email/confirm-new.html.tmpl5
-rw-r--r--template/en/default/account/email/request-new.txt.tmpl7
-rw-r--r--template/en/default/account/password/forgotten-password.txt.tmpl5
-rwxr-xr-xtoken.cgi3
8 files changed, 23 insertions, 25 deletions
diff --git a/Bugzilla/Token.pm b/Bugzilla/Token.pm
index 157cc0622..313d43212 100644
--- a/Bugzilla/Token.pm
+++ b/Bugzilla/Token.pm
@@ -74,7 +74,7 @@ sub issue_new_user_account_token {
my ($token, $token_ts) = _create_token(undef, 'account', $login_name);
$vars->{'email'} = $login_name . Bugzilla->params->{'emailsuffix'};
- $vars->{'token_ts'} = $token_ts;
+ $vars->{'expiration_ts'} = ctime($token_ts + MAX_TOKEN_AGE * 86400);
$vars->{'token'} = $token;
my $message;
@@ -103,10 +103,7 @@ sub IssueEmailChangeToken {
$vars->{'oldemailaddress'} = $old_email . $email_suffix;
$vars->{'newemailaddress'} = $new_email . $email_suffix;
-
- $vars->{'max_token_age'} = MAX_TOKEN_AGE;
- $vars->{'token_ts'} = $token_ts;
-
+ $vars->{'expiration_ts'} = ctime($token_ts + MAX_TOKEN_AGE * 86400);
$vars->{'token'} = $token;
$vars->{'emailaddress'} = $old_email . $email_suffix;
@@ -151,8 +148,10 @@ sub IssuePasswordToken {
$vars->{'token'} = $token;
$vars->{'emailaddress'} = $user->email;
- $vars->{'max_token_age'} = MAX_TOKEN_AGE;
- $vars->{'token_ts'} = $token_ts;
+ $vars->{'expiration_ts'} = ctime($token_ts + MAX_TOKEN_AGE * 86400);
+ # The user is not logged in (else he wouldn't request a new password).
+ # So we have to pass this information to the template.
+ $vars->{'timezone'} = $user->timezone;
my $message = "";
$template->process("account/password/forgotten-password.txt.tmpl",
@@ -233,6 +232,9 @@ sub Cancel {
$vars->{'token'} = $token;
$vars->{'tokentype'} = $tokentype;
$vars->{'issuedate'} = $issuedate;
+ # The user is probably not logged in.
+ # So we have to pass this information to the template.
+ $vars->{'timezone'} = $user->timezone;
$vars->{'eventdata'} = $eventdata;
$vars->{'cancelaction'} = $cancelaction;
diff --git a/template/en/default/account/cancel-token.txt.tmpl b/template/en/default/account/cancel-token.txt.tmpl
index 155c44136..6619dedd3 100644
--- a/template/en/default/account/cancel-token.txt.tmpl
+++ b/template/en/default/account/cancel-token.txt.tmpl
@@ -37,7 +37,7 @@ to [% Param('maintainer') %] if you suspect foul play.
Token: [% token %]
Token Type: [% tokentype %]
User: [% emailaddress %]
- Issue Date: [% issuedate %]
+ Issue Date: [% issuedate FILTER time("%Y-%m-%d %H:%M:%S %Z", timezone) %]
Event Data: [% eventdata %]
Canceled Because: [% PROCESS cancelactionmessage %]
diff --git a/template/en/default/account/email/change-new.txt.tmpl b/template/en/default/account/email/change-new.txt.tmpl
index e7f32e8d7..5803b0274 100644
--- a/template/en/default/account/email/change-new.txt.tmpl
+++ b/template/en/default/account/email/change-new.txt.tmpl
@@ -20,7 +20,6 @@
[% PROCESS global/variables.none.tmpl %]
-[% expiration_ts = token_ts + (max_token_age * 86400) %]
From: [% Param('mailfrom') %]
To: [% emailaddress %]
Subject: [% terms.Bugzilla %] Change Email Address Request
@@ -38,5 +37,5 @@ this request, visit the following link:
[%+ urlbase %]token.cgi?t=[% token FILTER url_quote %]&a=cxlem
-If you do nothing, the request will lapse after [%+ max_token_age %] days
-(on [%+ time2str("%B %o, %Y at %H:%M %Z", expiration_ts) %]).
+If you do nothing, the request will lapse after [% constants.MAX_TOKEN_AGE %] days
+(on [% expiration_ts FILTER time("%B %e, %Y at %H:%M %Z") %]).
diff --git a/template/en/default/account/email/change-old.txt.tmpl b/template/en/default/account/email/change-old.txt.tmpl
index cf00ebbcf..6b7774420 100644
--- a/template/en/default/account/email/change-old.txt.tmpl
+++ b/template/en/default/account/email/change-old.txt.tmpl
@@ -25,7 +25,6 @@
[% PROCESS global/variables.none.tmpl %]
-[% expiration_ts = token_ts + (max_token_age * 86400) %]
From: [% Param('mailfrom') %]
To: [% emailaddress %]
Subject: [% terms.Bugzilla %] Change Email Address Request
@@ -43,5 +42,5 @@ this request, visit the following link:
[%+ urlbase %]token.cgi?t=[% token FILTER url_quote %]&a=cxlem
If you do nothing, and [%+ newemailaddress %] confirms this request,
-the change will be made permanent after [%+ max_token_age %] days
-(on [%+ time2str("%B %o, %Y at %H:%M %Z", expiration_ts) %]).
+the change will be made permanent after [% constants.MAX_TOKEN_AGE %] days
+(on [% expiration_ts FILTER time("%B %e, %Y at %H:%M %Z") %]).
diff --git a/template/en/default/account/email/confirm-new.html.tmpl b/template/en/default/account/email/confirm-new.html.tmpl
index 437c1b758..ed0ff3405 100644
--- a/template/en/default/account/email/confirm-new.html.tmpl
+++ b/template/en/default/account/email/confirm-new.html.tmpl
@@ -16,7 +16,7 @@
[%# INTERFACE:
# token: string. The token to be used in the user account creation.
# email: email address of the user account.
- # date: creation date of the token.
+ # expiration_ts: expiration date of the token.
#%]
[% title = BLOCK %]Create a new user account for '[% email FILTER html %]'[% END %]
@@ -24,7 +24,6 @@
title = title
onload = "document.forms['confirm_account_form'].realname.focus();" %]
-[% expiration_ts = date + (constants.MAX_TOKEN_AGE * 86400) %]
<div>
To create your account, you must enter a password in the form below.
Your email address and Real Name (if provided) will be shown with
@@ -60,7 +59,7 @@
<p>
This account will not be created if this form is not completed by
- <u>[%+ time2str("%B %o, %Y at %H:%M %Z", expiration_ts) %]</u>.
+ <u>[% expiration_ts FILTER time("%B %e, %Y at %H:%M %Z") %]</u>.
</p>
<p>
diff --git a/template/en/default/account/email/request-new.txt.tmpl b/template/en/default/account/email/request-new.txt.tmpl
index 36cd94787..c56054b94 100644
--- a/template/en/default/account/email/request-new.txt.tmpl
+++ b/template/en/default/account/email/request-new.txt.tmpl
@@ -15,13 +15,12 @@
[%# INTERFACE:
# token: random string used to authenticate the transaction.
- # token_ts: creation date of the token.
+ # expiration_ts: expiration date of the token.
# email: email address of the new account.
#%]
[% PROCESS global/variables.none.tmpl %]
-[% expiration_ts = token_ts + (constants.MAX_TOKEN_AGE * 86400) %]
From: [% Param('mailfrom') %]
To: [% email %]
Subject: [% terms.Bugzilla %]: confirm account creation
@@ -31,11 +30,11 @@ X-Bugzilla-Type: admin
using your email address ([% email %]).
To continue creating an account using this email address, visit the
-following link by [%+ time2str("%B %o, %Y at %H:%M %Z", expiration_ts) %]:
+following link by [% expiration_ts FILTER time("%B %e, %Y at %H:%M %Z") %]:
[%+ urlbase %]token.cgi?t=[% token FILTER url_quote %]&a=request_new_account
-If you did not receive this email before [%+ time2str("%B %o, %Y at %H:%M %Z", expiration_ts) %] or
+If you did not receive this email before [% expiration_ts FILTER time("%B %e, %Y at %H:%M %Z") %] or
you wish to create an account using a different email address you can begin
again by going to:
diff --git a/template/en/default/account/password/forgotten-password.txt.tmpl b/template/en/default/account/password/forgotten-password.txt.tmpl
index f8687cb4d..574975c85 100644
--- a/template/en/default/account/password/forgotten-password.txt.tmpl
+++ b/template/en/default/account/password/forgotten-password.txt.tmpl
@@ -20,7 +20,6 @@
[% PROCESS global/variables.none.tmpl %]
-[% expiration_ts = token_ts + (max_token_age * 86400) %]
From: [% Param('mailfrom') %]
To: [% emailaddress %]
Subject: [% terms.Bugzilla %] Change Password Request
@@ -36,6 +35,6 @@ this request, visit the following link:
[%+ urlbase %]token.cgi?t=[% token FILTER url_quote %]&a=cxlpw
-If you do nothing, the request will lapse after [%+ max_token_age +%] days (at
-precisely [%+ time2str("%H:%M on the %o of %B, %Y", expiration_ts) -%]) or when you
+If you do nothing, the request will lapse after [% constants.MAX_TOKEN_AGE %] days
+(on [% expiration_ts FILTER time("%B %e, %Y at %H:%M %Z", timezone) %]) or when you
log in successfully.
diff --git a/token.cgi b/token.cgi
index 34a017376..535380042 100755
--- a/token.cgi
+++ b/token.cgi
@@ -37,6 +37,7 @@ use Bugzilla::Error;
use Bugzilla::Token;
use Bugzilla::User;
+use Date::Format;
use Date::Parse;
my $dbh = Bugzilla->dbh;
@@ -351,7 +352,7 @@ sub request_create_account {
my (undef, $date, $login_name) = Bugzilla::Token::GetTokenData($token);
$vars->{'token'} = $token;
$vars->{'email'} = $login_name . Bugzilla->params->{'emailsuffix'};
- $vars->{'date'} = str2time($date);
+ $vars->{'expiration_ts'} = ctime(str2time($date) + MAX_TOKEN_AGE * 86400);
# When 'ssl' equals 'always' or 'authenticated sessions',
# we want this form to always be over SSL.