#
# getflags.pl - Gets Imail flags from the registry
#    jalvarez@prw.net  05/15/2000
#
# Usage:
#    perl getflags.pl username hostname
# Example:
#    perl getflags.pl administrator mail.domain.com
#    Flags: 1414
#      List administrator (1024)
#      Host administrator (256)
#      Allow web access (128)
#      User can not change password (4)
#      Hide from information services (2)

use Win32::registry;

$user = $ARGV[0];
$domain = $ARGV[1];
$flags = $ARGV[2];
%flaglabels = ('1'=>'Account access disabled',
		'2'=>'Hide from information services',
		'4'=>'User cannot change password',
		'128'=>'Allow web access',
		'256'=>'Host administrator',
		'512'=>'Imail System administrator',
		'1024'=>'List administrator',
		'4096'=>'User cannot modify LDAP attributes');

$key = "SOFTWARE\\Ipswitch\\Imail\\Domains\\$domain\\Users\\$user";

$HKEY_LOCAL_MACHINE->Open($key, $hkey) or
	die "Can't find registry for $user\@$domain";

$hkey->GetValues($userdata);
$flags = $userdata->{'Flags'}[2];

print "Flags: $flags";
for $val (sort {$b <=> $a} keys %flaglabels) {
	if ($val & $flags) {
	print "\n  $flaglabels{$val} ($val)";
	}
}