#!/usr/bin/perl -w
use strict;
use vdef_globals;
use DBI();

my( $id, $crypt, $clear );

my( $dbh, $sth );
my( $rows );
my $dbpass;

if($#ARGV!=1){
   print "usage: vmailuser_passwd user\@domain.tld secret\n";
   exit 1;
}
$id=$ARGV[0];
$clear=$ARGV[1];

$dbpass = readpw();

$dbh = DBI->connect($vdef_globals::db_datasource,
                    $vdef_globals::db_user, $dbpass,{'RaiseError' => 1});
$sth = $dbh->prepare("SELECT id FROM users WHERE id=".$dbh->quote($id));
$sth->execute();
$rows=$sth->rows;
$sth->finish;
if($rows!=1){
   print "user $id does not exist\n";
}
else {
   my $salt = join '', ('.', '/', 0..9, 'A'..'Z', 'a'..'z')[rand 64, rand 64];
   $crypt = crypt($clear, $salt);
   $dbh->do("UPDATE users SET crypt = " . $dbh->quote($crypt) . "," .
      "clear = " . $dbh->quote($clear) . " WHERE id = " . $dbh->quote($id));
}
$dbh->disconnect();

