aboutsummaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
Diffstat (limited to 'bin')
-rwxr-xr-xbin/expire-sessions27
1 files changed, 4 insertions, 23 deletions
diff --git a/bin/expire-sessions b/bin/expire-sessions
index 8cfdd57e3..2ec0a09da 100755
--- a/bin/expire-sessions
+++ b/bin/expire-sessions
@@ -17,8 +17,6 @@ BEGIN {
use FixMyStreet::DB;
use Getopt::Long;
use List::Util qw(uniq);
-use MIME::Base64;
-use Storable;
GetOptions(
'init' => \my $init,
@@ -28,8 +26,8 @@ my $rs = FixMyStreet::DB->resultset("Session");
# Delete expired sessions (including from in User object)
while (my $session = $rs->search({ expires => { '<', time() } })->next) {
- if (my $user = get_user($session)) {
- my $id = get_id($session);
+ if (my $user = $session->user) {
+ my $id = $session->id_code;
my $sessions = $user->get_extra_metadata('sessions');
my @new_sessions = grep { $_ ne $id } @$sessions;
update_user_sessions($user, \@new_sessions) if @new_sessions != @$sessions;
@@ -41,8 +39,8 @@ if ($init) {
# Update sessions to make sure all present in User objects
print "Setting up sessions in user objects\n";
while (my $session = $rs->next) {
- my $user = get_user($session) or next;
- my $id = get_id($session);
+ my $user = $session->user or next;
+ my $id = $session->id_code;
my $sessions = $user->get_extra_metadata('sessions');
my @new_sessions = uniq @$sessions, $id;
update_user_sessions($user, \@new_sessions) if @new_sessions != @$sessions;
@@ -51,23 +49,6 @@ if ($init) {
# ---
-sub get_user {
- my $session = shift;
- return unless $session->session_data;
- my $data = Storable::thaw(MIME::Base64::decode($session->session_data));
- return unless $data->{__user};
- my $user = FixMyStreet::DB->resultset("User")->find($data->{__user}{id});
- return $user;
-}
-
-sub get_id {
- my $session = shift;
- my $id = $session->id;
- $id =~ s/^session://;
- $id =~ s/\s+$//;
- return $id;
-}
-
sub update_user_sessions {
my ($user, $sessions) = @_;
if (@$sessions) {