aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Somerville <matthew@mysociety.org>2011-06-29 10:46:34 +0100
committerMatthew Somerville <matthew@mysociety.org>2011-06-29 22:40:21 +0100
commitba55bd341e99c674619ac6295526038b5770fe3e (patch)
treed6b7287a854fbe6454b33dd08e6bd96bb13e436c
parentd6d8dc4e0080e3184751cf381bbd14581c970c62 (diff)
Get cookie expiry to work, and correct IDs on checkboxes.
-rw-r--r--perllib/Catalyst/Plugin/Session/State/Cookie.pm2
-rw-r--r--perllib/FixMyStreet/App/Controller/Auth.pm6
-rw-r--r--t/app/controller/auth.t8
-rw-r--r--templates/web/default/auth/general.html2
-rw-r--r--templates/web/default/report/display.html2
-rw-r--r--templates/web/default/report/new/fill_in_details.html2
6 files changed, 13 insertions, 9 deletions
diff --git a/perllib/Catalyst/Plugin/Session/State/Cookie.pm b/perllib/Catalyst/Plugin/Session/State/Cookie.pm
index 7ffc77f1f..c4b61123b 100644
--- a/perllib/Catalyst/Plugin/Session/State/Cookie.pm
+++ b/perllib/Catalyst/Plugin/Session/State/Cookie.pm
@@ -127,6 +127,8 @@ sub set_session_cookie_expire {
else {
delete $c->session->{__cookie_expires};
}
+ # Force the cookie to be regenerated
+ $c->set_session_id( $c->sessionid );
return 1;
}
diff --git a/perllib/FixMyStreet/App/Controller/Auth.pm b/perllib/FixMyStreet/App/Controller/Auth.pm
index 8aed746ec..ebb3510d0 100644
--- a/perllib/FixMyStreet/App/Controller/Auth.pm
+++ b/perllib/FixMyStreet/App/Controller/Auth.pm
@@ -71,7 +71,11 @@ sub sign_in : Private {
return 1;
}
- $c->stash->{sign_in_error} = 1;
+ $c->stash(
+ sign_in_error => 1,
+ email => $email,
+ remember_me => $remember_me,
+ );
return;
}
diff --git a/t/app/controller/auth.t b/t/app/controller/auth.t
index 1a16457f9..fef45ac90 100644
--- a/t/app/controller/auth.t
+++ b/t/app/controller/auth.t
@@ -197,12 +197,10 @@ foreach my $remember_me ( '1', '0' ) {
);
is $mech->uri->path, '/my', "redirected to correct page";
- # check that the cookie has no expiry set
my $expiry = $mech->session_cookie_expiry;
- is( $expiry, 0, "no expiry time" );
- #$remember_me
- # ? cmp_ok( $expiry, '>', 86400, "long expiry time" )
- # : is( $expiry, 0, "no expiry time" );
+ $remember_me
+ ? cmp_ok( $expiry, '>', 86400, "long expiry time" )
+ : is( $expiry, 0, "no expiry time" );
# logout
$mech->log_out_ok;
diff --git a/templates/web/default/auth/general.html b/templates/web/default/auth/general.html
index ffc85b3dc..5f9a09199 100644
--- a/templates/web/default/auth/general.html
+++ b/templates/web/default/auth/general.html
@@ -39,7 +39,7 @@
</p>
<p>
- <input type="checkbox" name="remember_me" value='1'[% ' checked' IF remember_me %]>
+ <input type="checkbox" id="remember_me" name="remember_me" value='1'[% ' checked' IF remember_me %]>
<label class="n" for="remember_me">
[% loc('Keep me signed in on this computer') %]
</label>
diff --git a/templates/web/default/report/display.html b/templates/web/default/report/display.html
index 7dcb92288..4948f8808 100644
--- a/templates/web/default/report/display.html
+++ b/templates/web/default/report/display.html
@@ -144,7 +144,7 @@
</p>
<p>
- <input type="checkbox" name="remember_me" value='1'[% ' checked' IF remember_me %]>
+ <input type="checkbox" id="remember_me" name="remember_me" value='1'[% ' checked' IF remember_me %]>
<label class="n" for="remember_me">
[% loc('Keep me signed in on this computer') %]
</label>
diff --git a/templates/web/default/report/new/fill_in_details.html b/templates/web/default/report/new/fill_in_details.html
index 68443770d..32d4a733b 100644
--- a/templates/web/default/report/new/fill_in_details.html
+++ b/templates/web/default/report/new/fill_in_details.html
@@ -159,7 +159,7 @@
</p>
<p>
- <input type="checkbox" name="remember_me" value='1'[% ' checked' IF remember_me %]>
+ <input type="checkbox" id="remember_me" name="remember_me" value='1'[% ' checked' IF remember_me %]>
<label class="n" for="remember_me">
[% loc('Keep me signed in on this computer') %]
</label>