#!/usr/local/bin/perl # # $Header: /cvsroot/arsperl/ARSperl/example/DelUsersFromGroup.pl,v 1.2 1998/09/14 20:50:08 jcmurphy Exp $ # # NAME # DelUsersFromGroup group user1 [user2] ... # # DESCRIPTION # add given users to specified group # # AUTHOR # jeff murphy # # $Log: DelUsersFromGroup.pl,v $ # Revision 1.2 1998/09/14 20:50:08 jcmurphy # removed some debugging statements # # Revision 1.1 1998/09/14 20:49:13 jcmurphy # Initial revision # # use ARS; die "usage: DelUserFromGroup server username password group user1 [user2] ...\n" unless ($#ARGV >= 4); ($server, $user, $pass, $group, @users) = (shift, shift, shift, shift, @ARGV); ($c = ars_Login($server, $user, $pass)) || die "ars_Login: $ars_errstr"; (%uf = ars_GetFieldTable($c, "User")) || die "ars_GetFieldTable(User): $ars_errstr"; (%gf = ars_GetFieldTable($c, "Group")) || die "ars_GetFieldTable(Group): $ars_errstr"; ($q = ars_LoadQualifier($c, "Group", "'Group name' = \"$group\"")) || die "ars_LoadQualifier(Group): $ars_errstr"; @e = ars_GetListEntry($c, "Group", $q, 0); die "No such group \"$group\"? ($ars_errstr)\n" if ($#e == -1); (%v = ars_GetEntry($c, "Group", $e[0])) || die "ars_GetEntry(Group): $ars_errstr"; $group_id = $v{$gf{'Group id'}}; foreach (@users) { print "Adding $_ to $group .. \n"; ($q = ars_LoadQualifier($c, "User", "'Login name' = \"$_\"")) || die "ars_LoadQualifier: $ars_errstr"; @e = ars_GetListEntry($c, "User", $q, 0); die "No User record for $_? ($ars_errstr)\n" if ($#e == -1); (%v = ars_GetEntry($c, "User", $e[0])) || die "ars_GetEntry: $ars_errstr"; $cg = $v{$uf{'Group list'}}; if(($cg =~ /^$group_id;/) || ($cg =~ /\s$group_id;/)) { print "\tcurrent group list: $cg\n"; if($cg =~ /^$group_id;/) { $cg =~ s/^$group_id;//g; } elsif($cg =~ /\s$group_id/) { $cg =~ s/\s$group_id;//g; } print "\tnew group list : $cg\n"; ars_SetEntry($c, "User", $e[0], 0, $uf{'Group list'}, $cg) || die "ars_SetEntry(User): $ars_errstr"; } else { print "\tnot a member of $group\n"; next; } } ars_Logoff($c); exit 0;