Changeset 850


Ignore:
Timestamp:
03/30/10 22:43:40 (14 years ago)
Author:
nanardon
Message:
  • add functions to find already expired account
Location:
LATMOS-Accounts/lib/LATMOS/Accounts
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Sql.pm

    r744 r850  
    157157} 
    158158 
     159sub find_next_expire_users { 
     160    my ($self, $expire) = @_; 
     161 
     162    my $sth= $self->db->prepare(q{ 
     163        select name from "user" where 
     164            expire < now() + ?::interval 
     165            and expire > now() 
     166            and expire is not null 
     167            } . ($self->{wexported} ? '' : 'and exported = true') . q{ 
     168            order by expire 
     169        } 
     170    ); 
     171    $sth->execute($expire || '1 month'); 
     172    my @users; 
     173    while (my $res = $sth->fetchrow_hashref) { 
     174        push(@users, $res->{name}); 
     175    } 
     176    @users 
     177} 
     178 
     179sub find_expired_users { 
     180    my ($self, $expire) = @_; 
     181 
     182    my $sth= $self->db->prepare(q{ 
     183        select name from "user" where 
     184            expire < now() - ?::interval 
     185            and expire is not null 
     186        } . ($self->{wexported} ? '' : 'and exported = true') . q{ 
     187            order by expire 
     188        } 
     189    ); 
     190    $sth->execute($expire || '1 second'); 
     191    my @users; 
     192    while (my $res = $sth->fetchrow_hashref) { 
     193        push(@users, $res->{name}); 
     194    } 
     195    @users 
     196} 
     197 
    1591981; 
    160199 
  • LATMOS-Accounts/lib/LATMOS/Accounts/Cli.pm

    r849 r850  
    7575            }, 
    7676        }); 
     77    $env->add_func('expired', { 
     78        help => 'expired [delay] - list expired account more than delay (default is now)', 
     79        code => sub { 
     80            my ($env, $expire) = @_; 
     81            my @users = $env->base->find_expired_users($expire); 
     82            print $OUT map { "$_\n" } @users; 
     83            $env->{_lastsearchtype} = 'user'; 
     84            $env->{_lastsearch} = \@users; 
     85        }, 
     86    }) if ($env->base->can('find_expired_users')); 
     87    $env->add_func('expires', { 
     88        help => 'expires [delay] - list account expiring before delay (default is 1 month)', 
     89        code => sub { 
     90            my ($env, $expire) = @_; 
     91            my @users = $env->base->find_next_expire_users($expire); 
     92            print $OUT map { "$_\n" } @users; 
     93            $env->{_lastsearchtype} = 'user'; 
     94            $env->{_lastsearch} = \@users; 
     95        }, 
     96    }) if ($env->base->can('find_next_expire_users')); 
    7797    $env->add_func('select', { 
    7898            help => 'select object_type - select objects to perform action on it', 
     
    142162                } 
    143163            } else { 
    144                 foreach (@{$env->{_objects}}) { 
    145                     print $OUT sort map { ($_ || '') . "\n" } $_->get_attributes($attr); 
     164                foreach my $u (@{$env->{_objects}}) { 
     165                    print $OUT sort map { $u->id . ': ' .($_ || '') . "\n" } $u->get_attributes($attr); 
    146166                } 
    147167            } 
  • LATMOS-Accounts/lib/LATMOS/Accounts/Maintenance.pm

    r789 r850  
    1919 
    2020sub find_next_expire_users { 
     21    # Do not replace this code by $base->find_next_expire_users 
     22    # it does not exctly the same thing 
    2123    my ($self, $expire) = @_; 
    2224    my $base = $self->_base; 
     
    177179} 
    178180 
     181sub find_expired_users { 
     182    my ($self, $expire) = @_; 
     183    $self->_base->find_expired_users($expire); 
     184} 
     185 
    179186sub generate_rsa_key { 
    180187    my ($self, $password) = @_; 
Note: See TracChangeset for help on using the changeset viewer.