#!/usr/bin/perl -w
#----------------------------------------------------------------------
# copyright (C) 2001 Mitel Networks Corporation
# 
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
# 		
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# 		
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
# 
# Technical support for this program is available from Mitel Networks 
# Please visit our web site www.e-smith.com for details.
#----------------------------------------------------------------------
# cp user-delete-sherpath /etc/e-smith/events/actions
# chmod 554 /etc/e-smith/events/actions/user-delete-sherpath
# chown root.root /etc/e-smith/events/actions/user-delete-sherpath
# ln -s ../actions/user-delete-sherpath /etc/e-smith/events/user-delete/S20user-delete-sherpath
package esmith;

use strict;
use Errno;
use esmith::config;
use esmith::util;
use esmith::db;
use File::Path;
use DBI;

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

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


if (db_get(\%conf, 'DeleteSherpathAccountsWithSME') ne 'yes')
{
exit (0);	
}

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

my $dbase='Sherpath';
my $dbserver='localhost';
my $dbadmin = 'root';
my $dbpwd=esmith::util::LdapPassword();

my $db = "dbi:mysql:$dbase:$dbserver:3306";
my $dbh = DBI->connect($db, $dbadmin, $dbpwd);
if (not $dbh){die "$DBI::errstr\n";}

my $list = $dbh->prepare("DELETE FROM shx_users WHERE username = '$account'");
$list->execute();

my $listb = $dbh->prepare("DELETE FROM shx_usrgrp_memb WHERE username = '$account'");
$listb->execute();

$list->finish() or die "Cannot delete Sherpath account for \"$account\"";
$listb->finish() or die "Cannot delete Sherpath account for \"$account\"";
$dbh->disconnect();


exit (0);

#========================================================

sub getGroups ($)
{
    my ($user) = @_;

    my $key;
    my $value;

    my @groups = ();
    my @selected = ();

    foreach (sort keys %accounts)
    {
	if (db_get_type(\%accounts, $_) eq "group")
	{
	    push @groups, $_;
	    if ($user ne '')
	    {
		my @members =
		    split (/,/, db_get_prop(\%accounts, $_, "Members"));

		if (grep (/^$user$/, @members))
		{
		    push @selected, $_;
		}
	    }
	}
    }

    @groups = sort @groups;
    my $count = scalar @groups;

    my @MyGroups=();

    if ($count > 0)
    {
	my $group;
	foreach $group (@groups)
	{
	    if (grep (/^$group$/, @selected))
	    {		
		push(@MyGroups,$group);
	    }	    
	}
    }   

    return @MyGroups;
}
