source: trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Task/Refreshexpired.pm @ 984

Last change on this file since 984 was 861, checked in by nanardon, 13 years ago
  • reimport missing files from previous svn
  • Property svn:executable set to *
File size: 1.1 KB
Line 
1package LATMOS::Accounts::Task::Refreshexpired;
2
3use strict;
4use warnings;
5use base qw(LATMOS::Accounts::Task);
6use LATMOS::Accounts;
7use Config::IniFiles;
8use LATMOS::Accounts::Log;
9use LATMOS::Accounts::Utils;
10
11sub init {
12    my ($self) = @_;
13    my $LA = LATMOS::Accounts->new($self->{config});
14    my $labase = $self->{base} ? $LA->base($self->{base}) : $LA->default_base;
15    $labase && $labase->load or die "Cannot load base";
16
17    $self->{_la} = $LA;
18    $self->{_base} = $labase;
19
20    1;
21}
22
23sub run {
24    my ($self) = @_;
25
26    my $find = $self->{_base}->db->prepare(
27        q{
28        SELECT * FROM "user"
29        WHERE expire < now() and "date" < expire;
30        }
31    );
32    $find->execute();
33    my $upd = $self->{_base}->db->prepare(
34        q{
35        UPDATE "user" SET date = now() where "name" = ?
36        }
37    );
38    while ( my $res = $find->fetchrow_hashref ) {
39        la_log(LA_NOTICE, "Refresh user %s to take expiry into account",
40            $res->{name},
41        );
42        $upd->execute($res->{name});
43    }
44
45    $self->{_base}->commit;
46
47    1;
48}
49
501;
Note: See TracBrowser for help on using the repository browser.