X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FPlugin%2FSession.pm;h=8b66e786a684534a96a2e60ee515b0106122fd3a;hb=eb250519802344a677c86103e5bba640dc40d59f;hp=1e9dd99319d1a2fd3b9b70caff2cc904934a305f;hpb=52feb18b99d74903d104da47b1ae9501f94d71b3;p=catagits%2FCatalyst-Plugin-Session.git diff --git a/lib/Catalyst/Plugin/Session.pm b/lib/Catalyst/Plugin/Session.pm index 1e9dd99..8b66e78 100644 --- a/lib/Catalyst/Plugin/Session.pm +++ b/lib/Catalyst/Plugin/Session.pm @@ -168,12 +168,15 @@ sub _save_flash { my $sid = $c->sessionid; + my $session_data = $c->_session; if (%$flash_data) { - $c->store_session_data( "flash:$sid", $flash_data ); + $session_data->{__flash} = $flash_data; } else { - $c->delete_session_data("flash:$sid"); + delete $session_data->{__flash}; } + $c->_session($session_data); + $c->_save_session; } } @@ -238,8 +241,11 @@ sub _load_flash { $c->_tried_loading_flash_data(1); if ( my $sid = $c->sessionid ) { - if ( my $flash_data = $c->_flash - || $c->_flash( $c->get_session_data("flash:$sid") ) ) + + my $session_data = $c->session; + $c->_flash($session_data->{__flash}); + + if ( my $flash_data = $c->_flash ) { $c->_flash_key_hashes({ map { $_ => Object::Signature::signature( \$flash_data->{$_} ) } keys %$flash_data }); @@ -687,6 +693,8 @@ changed, call C and pass in the keys as arguments. This method is used to invalidate a session. It takes an optional parameter which will be saved in C if provided. +NOTE: This method will B delete your flash data. + =item session_delete_reason This accessor contains a string with the reason a session was deleted. Possible