#!/usr/bin/perl
# reset extman root passwd
# author:fengyong
# data:2007-12-15
# ver: 0.2
# for extman 0.2.3 or high
#

use strict;
use lib "../libs";
use CmdTools;

my $cmdtools=CmdTools->new(config=>'../webman.cf');
my $mgr=$cmdtools->{mgr};

my %cmds=(
	list=>\&list,
	help=>\&help,
	reset=>\&reset
);
my $cmd=$ARGV[0];
if (exists $cmds{$cmd}){
	$cmds{$cmd}->();
}else{
	&help;
}
sub list {
	my $all=$mgr->get_managers_list||[];
	foreach my $admins(@$all){
		print "$admins->{manager}\n";
	}
}
sub reset {
	if ($#ARGV != 2){&help};
	my $info=$mgr->get_manager_info($ARGV[1]);
	my $owndomains=$info->{domain};
	if (!ref $owndomains){
		$owndomains=[$owndomains];
	}
	my $domains="";
	foreach my $vd (@$owndomains){	
		$domains.="$vd ";
	}

	if ($info){
		$mgr->modify_manager(
			manager=>$info->{manager},
			cn=>$info->{cn},
			expire=>$info->{expire},
			active=>$info->{active},
			domain=>$domains,
			question=>$info->{question},
			answer=>$info->{answer},
			disablepwdchange=>$info->{disablepwdchange},
			passwd=>$ARGV[2]
		);
		print "Manager:$info->{manager}\n";
		print "SUCCESSED!\n";

	}else{
		print "User not exists!\n";
		exit;
	}
}
sub help {
	print <<END;
	$0 v 0.2
	Extman manager passwd reset program (LDAP/MYSQL).
	--for Extman 0.2.3 or high.
	Usage:
	$0 list --list all manager for database.
	$0 reset <username> <password> -- reset password for username.
	$0 help --print this message.
	fengyong 2007-12-15
	Good Luck!
END
exit(255);
}

