#!/usr/local/bin/perl # ovid account application thinger [MODDED FOR IN-HOUSE USER ACCOUNT ADDS] # justin mccarthy, 3/99 # use CGI_Lite; use Pg; $config_file="/usr/local/share/acctadd/admin.cfg"; open(CONF,$config_file); while () { @config_values=split /\n/; foreach $config_value (@config_values) { if ($config_value=~/^#/) {next;} @config_fields=split /\=/,$config_value; $config{$config_fields[0]}=$config_fields[1]; } } print "Content-type: text/html\n\n"; print "New Account Requested"; print "\n"; print "Thank you for submitting your account request form.

"; print "You will be notified by Miner Library staff via the contact information\n"; print " you've provided."; print "\n

Back to Computing Services."; $dbmain=$config{"database"}; $table=$config{"table"}; $apply_text=$config{"appfile"}; open(LOG,">>/usr/local/share/logs/admin.log"); $date=`date +"%D %T"`; chomp $date; $dbmain="ovid_users"; $table="users1"; $Option_ref = Pg::conndefaults(); ($key, $val); while () { @values=split /\&/; foreach $value (@values) { @fields=split /\=/,$value; $fields[1]=url_decode($fields[1]); $fields[1]=~s/\'/\\\'/gi; $fields[1]=~tr/\+/\ /; $vars{$fields[0]}=$fields[1]; } } $conn = Pg::connectdb("dbname=$dbmain"); die $conn->errorMessage unless PGRES_CONNECTION_OK eq $conn->status; #open(INFO,">/tmp/$vars{\"Last+Name\"}.info"); $addfile="/usr/local/share/acctadd/$vars{\"Last+Name\"}_$vars{\"First+Name\"}.add"; $printfile="/usr/local/share/acctadd/$vars{\"Last+Name\"}_$vars{\"First+Name\"}.print"; $addfile=~s/ /_/g; $printfile=~s/ /_/g; open(ADDME,">$addfile"); open(PRINT,">$printfile"); #open(INFO,">/dev/null"); #open(PRINT,">/dev/null"); #open(PRINT, "|/bin/lp -o nobanner -d mislaser"); #open(PRINT, "|/usr/ucb/lpr -P mislaser -h"); $password=`/usr/local/bin/npwgen`; $password=~/([\w\d]*)/; $password=$1; #foreach $key (keys %vars) { # print INFO "$key = $vars{$key}
\n"; #} #close INFO; $first="\L$vars{\"First+Name\"}\E"; $last="\L$vars{\"Last+Name\"}\E"; $first=~/^(\w)/; $username=$1; $last=~/(\w{1,7})/; $username=$username.$1; $exist=`grep $username /etc/passwd`; while ($exist=~/$username/) { $num=1; if (length $username >=8) { chop $username}; $exist=`grep $username /etc/passwd`; $num++; $username=$username.$num; } $vars{"First+Name"}=~s/\\//g; $vars{"Last+Name"}=~s/\\//g; $vars{"Address1"}=~s/\\//g; $vars{"Address2"}=~s/\\//g; $vars{"City"}=~s/\\//g; $vars{"State"}=~s/\\//g; $vars{"Zip"}=~s/\\//g; if ($vars{"salutation"}=~/\./) { $name=$vars{"salutation"}." ".$vars{"First+Name"}." ".$vars{"Last+Name"}; $greeting=$vars{"salutation"}." ".$vars{"Last+Name"}; } else { $name=$vars{"First+Name"}." ".$vars{"Last+Name"}; $greeting=$name; } if ($vars{"Box"}=~/\S/) { $address="Medical center box ".$vars{"Box"}; $box=1; } if ($vars{"Address1"}=~/\S/ && !($address=~/\S/)) { $address=$vars{"Address1"}; } if ($vars{"Address2"}=~/\S/ && !($address=~/\S/)) { $address=$address."\n\t".$vars{"Address2"}; } $miracle_net=$vars{"mnet"}; #%contacts=("Rochester General"=>"name\@rgh.org", # "Genesee"=>"sgerling\@rghnet.edu", # "Highland"=>"adixon\@highland.rochester.edu", # "Jones"=>"", # "Monroe"=>"mch\@rrlc.rochester.lib.ny.us", # "Park"=>"parkrdge\@rrlc.rochester.lib.ny.us", # "James"=>"", # "Mary"=>"parkrdge\@rrlc.rochester.lib.ny.us", # "Nurse"=>""); $last_line=""; if ($vars{"City"}=~/\S/) { $last_line=$vars{"City"}; } if ($vars{"State"}=~/\S/) { $last_line=$last_line.", ".$vars{"State"}; } if ($vars{"Zip"}=~/\S/) { $last_line=$last_line." ".$vars{"Zip"}; } if ($box==1) { $last_line=""; } $saltuation=$vars{"salutation"}; $first_name=$vars{"First+Name"}; $last_name=$vars{"Last+Name"}; $addr1=$vars{"Address1"}; $addr2=$vars{"Address2"}; $city=$vars{"City"}; $state=$vars{"State"}; $zip=$vars{"Zip"}; $email=$vars{"Email"}; $status=$vars{"Status"}; $dept=$vars{"Department"}; $box=$vars{"Box"}; $phone=$vars{"Phone"}; $full_address="\t$miracle_net\n\n\n\t$name\n\t$address\n\t$last_line"; open(APPLY,"$apply_text"); while() { s/ADDRESS/$full_address/; s/GREETING/$greeting/; s/USERNAME/$username/; s/EMAIL/$email/; s/PHONE/$phone/; print PRINT; } close PRINT; print ADDME "$username\n$first_name\n$last_name\n$status\n$email\n\n"; close ADDME; #$status="".$vars{"addr2"}; if ($mnet=~/\S/) { $status=$mnet; } $query="INSERT INTO $table VALUES ('$salutation','$last_name','$first_name','$username','$addr1','$addr2','$city','$state','$zip','$phone','$email','$dept','$box','$status');"; $result=$conn->exec("$query"); print LOG "$date APPLY $username [$first_name $last_name, $email, $status]\n"; close LOG; #die $conn->errorMessage unless PGRES_TUPLES_OK eq $result->resultStatus; `echo "User with login $username has requested a new acount [Check printer]"|mailx -s "New account request [Check printer]" edod\@mc.rochester.edu`