diff --git a/root/usr/share/perl5/vendor_perl/esmith/FormMagick/Panel/expireaccounts.pm b/root/usr/share/perl5/vendor_perl/esmith/FormMagick/Panel/expireaccounts.pm index a474e06..137f0cc 100644 --- a/root/usr/share/perl5/vendor_perl/esmith/FormMagick/Panel/expireaccounts.pm +++ b/root/usr/share/perl5/vendor_perl/esmith/FormMagick/Panel/expireaccounts.pm @@ -63,102 +63,101 @@ sub print_user_table { my @users = $a->users; - unless ( scalar @users ) { + if ( scalar @users < 1) { print $q->Tr($q->td($self->localise('NO_USER_ACCOUNTS'))); return ""; } - print " "; - print $q->start_table ({-CLASS => "sme-border"}); - print $q->Tr( - esmith::cgi::genSmallCell($q, $self->localise('ACTIVE_ACCOUNT'), "header"), - esmith::cgi::genSmallCell($q, $self->localise('USER_NAME'), "header"), - esmith::cgi::genSmallCell($q, $self->localise('FORWARD'), "header"), - esmith::cgi::genSmallCell($q, $self->localise('DAYS_BEFORE_LOCK'), "header"), - esmith::cgi::genSmallCell($q, $self->localise('ACTION'), "header") - ); - - my $scriptname = basename($0); - - my $now = DateTime->now; - foreach my $u (@users) { - my $username = $u->key(); - next unless (($u->prop('PasswordSet') || 'no') eq 'yes'); - my $first = $u->prop('FirstName') || ''; - my $last = $u->prop('LastName') || ''; - my $lock_date = $u->prop('ExpireLockOn') || ''; - my $delivery = $u->prop('EmailForward') || 'local'; - my $fwd = $u->prop('ForwardAddress') || ''; - my $action = "" . - $self->localise('MODIFY') . ""; - my $days_left = ''; - if ($lock_date =~ m/^(\d{4})\-(\d{1,2})\-(\d{1,2})$/){ - my $lock_on = eval { - DateTime->new( - year => $1, - month => $2, - day => $3 - ); - }; - $days_left = ($lock_on - $now)->in_units('days') if ($lock_on); - } - my $addr = ($delivery eq 'local') ? '' : $fwd; + if (_count_active_users() > 0){ + print " "; + print $q->start_table ({-CLASS => "sme-border"}); print $q->Tr( - esmith::cgi::genSmallCell($q, $username, "normal"), - esmith::cgi::genSmallCell($q, "$first $last", "normal"), - esmith::cgi::genSmallCell($q, $addr, "normal"), - esmith::cgi::genSmallCell($q, $days_left, "normal"), - esmith::cgi::genSmallCell($q, $action, "normal") + esmith::cgi::genSmallCell($q, $self->localise('ACTIVE_ACCOUNT'), "header"), + esmith::cgi::genSmallCell($q, $self->localise('USER_NAME'), "header"), + esmith::cgi::genSmallCell($q, $self->localise('FORWARD'), "header"), + esmith::cgi::genSmallCell($q, $self->localise('DAYS_BEFORE_LOCK'), "header"), + esmith::cgi::genSmallCell($q, $self->localise('ACTION'), "header") ); - } - # Now, same for locked accounts - print $q->Tr( - esmith::cgi::genSmallCell($q, $self->localise('INACTIVE_ACCOUNT'), "header"), - esmith::cgi::genSmallCell($q, $self->localise('USER_NAME'), "header"), - esmith::cgi::genSmallCell($q, $self->localise('FORWARD'), "header"), - esmith::cgi::genSmallCell($q, $self->localise('DAYS_BEFORE_DELETE'), "header"), - esmith::cgi::genSmallCell($q, $self->localise('ACTION'), "header") - ); - - foreach my $u (@users) { - my $username = $u->key(); - next unless (($u->prop('PasswordSet') || 'no') ne 'yes'); - my $first = $u->prop('FirstName') || ''; - my $last = $u->prop('LastName') || ''; - my $delete_in = $u->prop('ExpireDeleteAfterLock') || ''; - my $locked_on = $u->prop('ExpireLockedOn') || ''; - my $delivery = $u->prop('EmailForward') || ''; - my $fwd = $u->prop('ForwardAddress') || ''; - my $action = "" . - $self->localise('MODIFY') . ""; - my $days_left = ''; - if ($delete_in =~ m/^\d+$/ && $locked_on =~ m/^(\d{4})\-(\d{1,2})\-(\d{1,2})$/){ - my $locked_date = eval { - DateTime->new( - year => $1, - month => $2, - day => $3 + my $scriptname = basename($0); + + my $now = DateTime->now; + foreach my $u (@users) { + my $username = $u->key(); + next unless (($u->prop('PasswordSet') || 'no') eq 'yes'); + my $first = $u->prop('FirstName') || ''; + my $last = $u->prop('LastName') || ''; + my $lock_date = $u->prop('ExpireLockOn') || ''; + my $delivery = $u->prop('EmailForward') || 'local'; + my $fwd = $u->prop('ForwardAddress') || ''; + my $action = "" . + $self->localise('MODIFY') . ""; + my $days_left = ''; + if ($lock_date =~ m/^(\d{4})\-(\d{1,2})\-(\d{1,2})$/){ + my $lock_on = eval { + DateTime->new( + year => $1, + month => $2, + day => $3 + ); + }; + $days_left = ($lock_on - $now)->in_units('days') if ($lock_on); + } + my $addr = ($delivery eq 'local') ? '' : $fwd; + print $q->Tr( + esmith::cgi::genSmallCell($q, $username, "normal"), + esmith::cgi::genSmallCell($q, "$first $last", "normal"), + esmith::cgi::genSmallCell($q, $addr, "normal"), + esmith::cgi::genSmallCell($q, $days_left, "normal"), + esmith::cgi::genSmallCell($q, $action, "normal") ); - }; - if ($locked_date){ - my $delete_on = $locked_date->add(days => $delete_in); - $days_left = ($delete_on - $now)->in_units('days'); - } } - my $addr = ($delivery eq 'local') ? '' : $fwd; - + } + if (_count_inactive_users() > 0){ + # Now, same for locked accounts print $q->Tr( - esmith::cgi::genSmallCell($q, $username, "normal"), - esmith::cgi::genSmallCell($q, "$first $last", "normal"), - esmith::cgi::genSmallCell($q, $addr, "normal"), - esmith::cgi::genSmallCell($q, $days_left, "normal"), - esmith::cgi::genSmallCell($q, $action, "normal") + esmith::cgi::genSmallCell($q, $self->localise('INACTIVE_ACCOUNT'), "header"), + esmith::cgi::genSmallCell($q, $self->localise('USER_NAME'), "header"), + esmith::cgi::genSmallCell($q, $self->localise('FORWARD'), "header"), + esmith::cgi::genSmallCell($q, $self->localise('DAYS_BEFORE_DELETE'), "header"), + esmith::cgi::genSmallCell($q, $self->localise('ACTION'), "header") ); + foreach my $u (@users) { + my $username = $u->key(); + next unless (($u->prop('PasswordSet') || 'no') ne 'yes'); + my $first = $u->prop('FirstName') || ''; + my $last = $u->prop('LastName') || ''; + my $delete_in = $u->prop('ExpireDeleteAfterLock') || ''; + my $locked_on = $u->prop('ExpireLockedOn') || ''; + my $delivery = $u->prop('EmailForward') || ''; + my $fwd = $u->prop('ForwardAddress') || ''; + my $action = "" . + $self->localise('MODIFY') . ""; + my $days_left = ''; + if ($delete_in =~ m/^\d+$/ && $locked_on =~ m/^(\d{4})\-(\d{1,2})\-(\d{1,2})$/){ + my $locked_date = eval { + DateTime->new( + year => $1, + month => $2, + day => $3 + ); + }; + if ($locked_date){ + my $delete_on = $locked_date->add(days => $delete_in); + $days_left = ($delete_on - $now)->in_units('days'); + } + } + my $addr = ($delivery eq 'local') ? '' : $fwd; + print $q->Tr( + esmith::cgi::genSmallCell($q, $username, "normal"), + esmith::cgi::genSmallCell($q, "$first $last", "normal"), + esmith::cgi::genSmallCell($q, $addr, "normal"), + esmith::cgi::genSmallCell($q, $days_left, "normal"), + esmith::cgi::genSmallCell($q, $action, "normal") + ); + } } - print qq(\n); - return ""; } @@ -265,6 +264,22 @@ sub modify_user { $self->success('USER_MODIFIED'); } +sub _count_active_users{ + my $users = 0; + foreach my $user ($a->users){ + $users++ if ($user->prop('PasswordSet') || 'no') eq 'yes'; + } + return $users; +} + +sub _count_inactive_users{ + my $users = 0; + foreach my $user ($a->users){ + $users++ unless ($user->prop('PasswordSet') || 'no') eq 'yes'; + } + return $users; +} + # Validation routines # Number must be int and positive