|
|
@ -38,6 +38,7 @@ our @EXPORT = qw( |
|
|
|
print_save_button |
|
|
|
print_save_button |
|
|
|
print_custom_button |
|
|
|
print_custom_button |
|
|
|
print_section_bar |
|
|
|
print_section_bar |
|
|
|
|
|
|
|
print_user_locked_warning |
|
|
|
); |
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
our $a = esmith::AccountsDB->open || die "Couldn't open AccountsDB"; |
|
|
|
our $a = esmith::AccountsDB->open || die "Couldn't open AccountsDB"; |
|
|
@ -67,28 +68,93 @@ sub print_user_table { |
|
|
|
print $q->Tr($q->td($self->localise('NO_USER_ACCOUNTS'))); |
|
|
|
print $q->Tr($q->td($self->localise('NO_USER_ACCOUNTS'))); |
|
|
|
return ""; |
|
|
|
return ""; |
|
|
|
} |
|
|
|
} |
|
|
|
print " <tr>\n <td colspan=\"2\">\n "; |
|
|
|
print " <tr><td colspan=\"2\">"; |
|
|
|
print $q->start_table ({-CLASS => "sme-border"}),"\n "; |
|
|
|
print $q->start_table ({-CLASS => "sme-border"}); |
|
|
|
print $q->Tr( |
|
|
|
print $q->Tr( |
|
|
|
esmith::cgi::genSmallCell($q, $self->localise('ACCOUNT'), "header"), |
|
|
|
esmith::cgi::genSmallCell($q, $self->localise('ACTIVE_ACCOUNT'), "header"), |
|
|
|
esmith::cgi::genSmallCell($q, $self->localise('USER_NAME'), "header"), |
|
|
|
esmith::cgi::genSmallCell($q, $self->localise('USER_NAME'), "header"), |
|
|
|
esmith::cgi::genSmallCell($q, $self->localise('ACTION'), "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 $scriptname = basename($0); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
my $now = DateTime->now; |
|
|
|
foreach my $u (@users) { |
|
|
|
foreach my $u (@users) { |
|
|
|
my $username = $u->key(); |
|
|
|
my $username = $u->key(); |
|
|
|
my $first = $u->prop('FirstName'); |
|
|
|
next unless (($u->prop('PasswordSet') || 'no') eq 'yes'); |
|
|
|
my $last = $u->prop('LastName'); |
|
|
|
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=Modify\">" . |
|
|
|
|
|
|
|
$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; |
|
|
|
|
|
|
|
|
|
|
|
my $action = (($u->prop('PasswordSet') || 'no') eq 'yes') ? "<a href=\"$scriptname?page=0&page_stack=&acctName=$username&wherenext=Modify\">" . |
|
|
|
print $q->Tr( |
|
|
|
$self->localise('MODIFY') . "</a>" : $self->localise('LOCKED'); |
|
|
|
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") |
|
|
|
|
|
|
|
); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 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=Modify\">" . |
|
|
|
|
|
|
|
$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( |
|
|
|
print $q->Tr( |
|
|
|
esmith::cgi::genSmallCell($q, $username, "normal"), |
|
|
|
esmith::cgi::genSmallCell($q, $username, "normal"), |
|
|
|
esmith::cgi::genSmallCell($q, "$first $last", "normal"), |
|
|
|
esmith::cgi::genSmallCell($q, "$first $last", "normal"), |
|
|
|
esmith::cgi::genSmallCell($q, "$action", "normal") |
|
|
|
esmith::cgi::genSmallCell($q, $addr, "normal"), |
|
|
|
|
|
|
|
esmith::cgi::genSmallCell($q, $days_left, "normal"), |
|
|
|
|
|
|
|
esmith::cgi::genSmallCell($q, $action, "normal") |
|
|
|
); |
|
|
|
); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -97,6 +163,18 @@ sub print_user_table { |
|
|
|
return ""; |
|
|
|
return ""; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
sub print_user_locked_warning { |
|
|
|
|
|
|
|
my ($self) = @_; |
|
|
|
|
|
|
|
my $u = $self->{cgi}->param('acctName'); |
|
|
|
|
|
|
|
my $user = $a->get($u); |
|
|
|
|
|
|
|
return $self->localise('USER_NOT_FOUND') unless ($user); |
|
|
|
|
|
|
|
my $type = $user->prop('type'); |
|
|
|
|
|
|
|
return $self->localise('ERROR_OCCURRED') unless ($type && $type eq 'user'); |
|
|
|
|
|
|
|
my $pass = $user->prop('PasswordSet') || 'no'; |
|
|
|
|
|
|
|
return $self->localise('USER_LOCKED') if ($pass eq 'no'); |
|
|
|
|
|
|
|
return ""; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
sub print_save_button { |
|
|
|
sub print_save_button { |
|
|
|
my ($self) = @_; |
|
|
|
my ($self) = @_; |
|
|
|
$self->print_button("SAVE"); |
|
|
|
$self->print_button("SAVE"); |
|
|
|