On Oct 23, 2016, at 14:55, Hector Azpurua <h3ct0r...@gmail.com> wrote:
> Is there a recommended way to access or modify session data stored in
> database with Store::DBI ?

The session data is typically a hashref of data, serialized using Storable, and 
converted to Base64 for storage in the database. Look at the get_session_data() 
and store_session_data() in Catalyst::Plugin::Session::Store::DBI to see how 
the data is retrieved and stored: 
https://metacpan.org/source/Catalyst::Plugin::Session::Store::DBI#L24

You can do the same thing. From code outside Catalyst you can use DBI or 
DBIx::Class or whatever to SELECT the data from the database, decode/thaw it, 
work with it however you'd like, then freeze/encode it and UPDATE the db 
record. You'll probably want to wrap that in a transaction.

A separate problem is that the session data is keyed on the session id, not the 
username, so you won't be able to directly SELECT the session data for a 
particular username. You'd need to select and examine each session to find the 
username in $session_data->{'__user'}. Or maybe create a subclass of 
Catalyst::Plugin::Session::Store::DBI and store the username as a separate 
column in the sessions table. I have no idea how difficult that would be, but I 
bet it's manageable.

-A


_______________________________________________
List: Catalyst@lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/

Reply via email to