#!/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_assign_user_to_profile"; my $VERSION="1.1.4.0"; if (@ARGV == 0) { &useage; exit 202; } sub useage { print "Useage: $PRGM [options] "; print "\"\" \n"; } my $flag="false"; my $pscope="a"; my $profile="all"; my $userid="all"; my $uname="dummy"; my $username="dummy"; my $uscope="a"; my $arg1; my $coedat; my $COEDAT; 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); $profile=cleanString(shift,1); $pscope=cleanString(shift,1); } } # verify the user scope if ("$uscope" eq "l" || "$uscope" eq "local") { $uscope="local"; } elsif ("$uscope" eq "g" || "$uscope" eq "global") { $uscope="global"; } else { print "User scope must be one of \"g\" or \"l\"\n"; exit 202; } # verify the profile scope if ("$pscope" eq "l" || "$pscope" eq "local") { $pscope="local"; } elsif ("$pscope" eq "g" || "$pscope" eq "global") { $pscope="global"; } else { print "Profile scope must be one of \"g\" or \"l\"\n"; exit 202; } #- does this user exist $flag="false"; $coedat=coeFileConv("COE_USER/$uscope/Profiles/.User.dat"); $COEDAT=readFile ($coedat); while (<$COEDAT>) { if (/^$userid:/) { $flag="true"; }} close $COEDAT; if ("$flag" eq "false") { # user does not exist exit 203; } #- does this profile exist $flag="false"; $coedat=coeFileConv("COE_USER/$pscope/Profiles/.Profile.dat"); $COEDAT=readFile ($coedat); while (<$COEDAT>) { if (/^$profile:/) { $flag="true"; }} close $COEDAT; if ("$flag" eq "false") { # profile does not exist exit 204; } #- assign user to profile, save in the profiles scope $flag="false"; $coedat=coeFileConv("COE_USER/$pscope/Profiles/.UserProfile.dat"); $COEDAT=readFile ($coedat); while (<$COEDAT>) {chomp();if (/^$userid:$uscope:$profile$/) { $flag="true"; }} close $COEDAT; if ("$flag" ne "true") { open COEDAT, ">>$coedat" || die "Cannot open COEDAT $coedat: $!\n"; print COEDAT "$userid:$uscope:$profile\n"; close COEDAT; } else { #- duplicate user/profile data exit 217; } # successful exit exit 0;