blob: 30149fc2b847bc962bbf92546e97e4164a31b206 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
package Catalyst::Plugin::FixMyStreet::Session::StoreSessions;
use Moose::Role;
use namespace::autoclean;
after set_authenticated => sub {
my $c = shift;
my $sessions = $c->user->get_extra_metadata('sessions');
push @$sessions, $c->sessionid;
$c->user->set_extra_metadata('sessions', $sessions);
$c->user->set_last_active;
$c->user->update;
};
before logout => sub {
my $c = shift;
if (my $user = $c->user) {
my $sessions = $user->get_extra_metadata('sessions');
$sessions = [ grep { $_ ne $c->sessionid } @$sessions ];
@$sessions ? $user->set_extra_metadata('sessions', $sessions) : $user->unset_extra_metadata('sessions');
$user->set_last_active;
$user->update;
}
};
__PACKAGE__;
|