|
|
|
@ -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 " <tr><td colspan=\"2\">"; |
|
|
|
|
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 = "<a href=\"$scriptname?page=0&page_stack=&acctName=$username&wherenext=ModifyActive\">" . |
|
|
|
|
$self->localise('MODIFY') . "</a>"; |
|
|
|
|
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 " <tr><td colspan=\"2\">"; |
|
|
|
|
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 = "<a href=\"$scriptname?page=0&page_stack=&acctName=$username&wherenext=ModifyLocked\">" . |
|
|
|
|
$self->localise('MODIFY') . "</a>"; |
|
|
|
|
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 = "<a href=\"$scriptname?page=0&page_stack=&acctName=$username&wherenext=ModifyActive\">" . |
|
|
|
|
$self->localise('MODIFY') . "</a>"; |
|
|
|
|
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 = "<a href=\"$scriptname?page=0&page_stack=&acctName=$username&wherenext=ModifyLocked\">" . |
|
|
|
|
$self->localise('MODIFY') . "</a>"; |
|
|
|
|
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(</table></td></tr>\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 |
|
|
|
|