#!/usr/bin/perl -w

#This script is meant to remove all entries for a given user from IlohaMail's Database (MySQL).
#The script expects two parameters: username (e.g. 'test') and domain (e.g. demo.org)
#Depending on the events, the script will return the following:
#
#operation successfull:                         0
#Syntax error, wrong number of args             1
#Failed to connect to the Database server:      2
#Querying the Database failed:                  3
#SELECT failed or user not found:               4

use strict;
use Mysql;
if ($#ARGV ne '1')
{
        exit(1);
}
else
{
        my $address = lc($ARGV[0] . "@" . $ARGV[1]);
        my $host = "";
        my $database = "";
        my $user = "";
        my $password = "";
        my $db = Mysql->connect($host, $database, $user, $password);
        if (defined($db))
	{
                $db->selectdb($database);
                my $query = $db->query("SELECT * FROM users WHERE login='$address';");
                if (defined($query))
		{
                        my $ref = $query->fetchrow_hashref();
                        if (defined($ref->{'id'}) && ($ref->{'id'} ne ''))
			{
                                my $owner = $ref->{'id'};
                                $db->query("DELETE FROM bookmarks WHERE owner='$owner';");
                                $db->query("DELETE FROM cache WHERE owner='$owner';");
                                $db->query("DELETE FROM calendar WHERE userID='$owner';");
                                $db->query("DELETE FROM contacts WHERE owner='$owner';");
                                $db->query("DELETE FROM datastore WHERE owner='$owner';");
                                $db->query("DELETE FROM filters WHERE owner='$owner';");
                                $db->query("DELETE FROM identities WHERE owner='$owner';");
                                $db->query("DELETE FROM user_log WHERE userID='$owner';");
                                $db->query("DELETE FROM users WHERE id='$owner';");
				exit(0);
                        }
                        else
                        {
                                exit(4);
                        }
                }
                else
                {
                        exit(3);
                }
        }
        else
        {
                exit(2);
        }
}
