User account expiration control panel for SME Server
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

51 lines
1.3 KiB

#!/usr/bin/perl -w
use strict;
use esmith::ConfigDB;
use esmith::AccountsDB;
use esmith::templates;
use User::pwent;
my $a = esmith::AccountsDB->open_ro or
die "Could not open AccountsDB\n";
my $event = shift;
my $userName = shift;
my @users;
if (defined $userName){
my $user = $a->get($userName);
die "Account $userName is not a user account; can't update the auto-reply message.\n"
unless $user && $user->prop('type') eq "user";
@users = ($user);
}
else{
@users = ( $a->users );
}
foreach my $user (@users){
my $userName = $user->key;
my $pass = $user->prop('PasswordSet') || 'no';
next if $pass eq 'yes';
my $expired = $user->prop('ExpireLockedOn') || '';
next if $expired !~ (\d{4}\-\d{1,2}\-\d{1,2});
my $home = getpwnam($userName)->dir;
mkdir $home . '/.lock-auto-reply' unless -d $home . '/.lock-auto-reply';
esmith::templates::processTemplate ({
MORE_DATA => { USERNAME => $userName },
TEMPLATE_PATH => "/.lock-auto-reply/message.txt",
TEMPLATE_EXPAND_QUEUE =>
[
"/etc/e-smith/templates-user-custom",
"/etc/e-smith/templates-user",
],
OUTPUT_PREFIX => "$home",
PERMS => 0644,
});
}
exit (0);