#!/usr/bin/perl -w

package esmith;

use strict;
use Errno;
use esmith::config;
use esmith::util;

my %conf;
tie %conf, 'esmith::config';

my %accounts;
tie %accounts, 'esmith::config', '/home/e-smith/db/accounts';

my $event = $ARGV [0];
my $userName = $ARGV [1];

die "Username argument missing." unless defined ($userName);

my $value = $accounts {$userName};
my ($type, %properties) = split (/\|/, $value, -1);

if ($type ne 'user')
{
    die "Account $userName is not a user account; modify user failed.\n";
}

# defaults to rssh with no rights
my $Shell=$properties{'Shell'} || 'rssh';

if (($Shell eq 'bash') || ($Shell eq 'sudo'))
{
    $Shell = '/bin/bash';
}
else
{
    $Shell = '/usr/bin/rssh';
}

my $cmd = "/usr/sbin/usermod";
$cmd .= " -s \"$Shell\"";
$cmd .= " '$userName'";

my $discard = `$cmd`;
if ($? != 0)
{
    die "Failed to modify account $userName.\n";
}

esmith::util::processTemplate (\%conf, "/etc/sudoers");
chmod 0440, "/etc/sudoers";

esmith::util::processTemplate (\%conf, "/etc/rssh.conf");

esmith::util::processTemplate (\%conf, "/etc/proftpd.conf");
