#!/h/COE/Comp/PERL5/bin/perl -T -I/h/COE/lib -w
#-
# Copyright (C) 2002, Federal Linux Systems
# License: GNU Lesser General Public License, v2.1
#-
use strict;
use Coe;
my $PRGM="COE_delete_user_data";
my $VERSION="1.1.4.1";
if (@ARGV == 0) {
&useage;
exit 202;
}
sub useage {
print "Useage: $0 {UserID} {Scope}\n";
}
my $userid="0";
my $uscope="a";
my $arg1;
my $flag="false";
my $coedat;
my $COEDAT;
my @userdat;
my @userprofdat;
my $i;
my $ERR;
while (@ARGV > 0 ){
$arg1=cleanString(shift,1);
if ("$arg1" eq "-h") {
useage;
exit 0;
} elsif ("$arg1" eq "-H") {
coeMan("COE_COMP/UserMgmt/docs/man/$PRGM");
exit 0;
} elsif ("$arg1" eq "-V") {
print "VERSION: $VERSION\n";
exit 0;
} else {
$userid=$arg1;
$uscope=cleanString(shift,1);
}
}
# --+----|----+----|----+----|----+----|----+----|----+----|----+----|----+----|
# do simple sanity checks
# --+----|----+----|----+----|----+----|----+----|----+----|----+----|----+----|
# is this a legal scope ?
if ( "$uscope" eq "l" || "$uscope" eq "local" ) {
$uscope="local";
} elsif ("$uscope" eq "g" || "$uscope" eq "global" ) {
$uscope="global";
} else {
&useage;
exit 202;
}
# does this acct group exist?
# --+----|----+----|----+----|----+----|----+----|----+----|----+----|----+----|
# define some stuff
# --+----|----+----|----+----|----+----|----+----|----+----|----+----|----+----|
# --+----|----+----|----+----|----+----|----+----|----+----|----+----|----+----|
# (1) User.dat
# --+----|----+----|----+----|----+----|----+----|----+----|----+----|----+----|
# path for the AppData data COEDAT
$coedat=coeFileConv "COE_USER/$uscope/Profiles/.User.dat";
# User.dat format:: userid:$username:$userdesc::::::
# --+----|----+----|----+----|----+----|----+----|----+----|----+----|----+----|
# if the user id is found, remove it from the COEDAT
# --+----|----+----|----+----|----+----|----+----|----+----|----+----|----+----|
$i=0;
$COEDAT=readFile($coedat);
while (<$COEDAT>) {
if (!/^$userid:/) {
$userdat[$i++]=cleanString($_,3);
} else {
$flag="true";
}
}
close $COEDAT;
#- only rewrite if uid was found
if ("$flag" eq "true") {
open COEDAT, (">$coedat")
|| die "Cannot open COEDAT $coedat: $!\n";
foreach (@userdat){
print COEDAT "$_\n";
}
close COEDAT;
$ERR=0;
} else {
$ERR=203;
}
# --+----|----+----|----+----|----+----|----+----|----+----|----+----|----+----|
# (2) UserProfile.dat
# --+----|----+----|----+----|----+----|----+----|----+----|----+----|----+----|
# path for the AppData data COEDAT
$coedat=coeFileConv "COE_USER/$uscope/Profiles/.UserProfile.dat";
# UserProfile.dat format:: userid:$scope:$profile
# --+----|----+----|----+----|----+----|----+----|----+----|----+----|----+----|
# if the user id is found, remove it from the COEDAT
# --+----|----+----|----+----|----+----|----+----|----+----|----+----|----+----|
$i=0;
$flag="false";
$COEDAT = readFile($coedat);
while (<$COEDAT>) {
if (!/^$userid:/) {
$userprofdat[$i++]=cleanString($_,3);
} else {
$flag="true";
}
}
close $COEDAT;
#- only rewrite if uid was found
if ("$flag" eq "true" ) {
open COEDAT, (">$coedat")
|| die "Cannot open COEDAT $coedat: $!\n";
foreach (@userprofdat){
print COEDAT "$_\n";
}
close COEDAT;
}
exit $ERR;