--- loncom/Attic/lcuseradd	2002/09/16 13:27:40	1.22
+++ loncom/Attic/lcuseradd	2002/12/09 16:15:51	1.24
@@ -18,7 +18,7 @@
 #        o LonCapa will add it if/when the user is granted an Author
 #          role.
 #
-# $Id: lcuseradd,v 1.22 2002/09/16 13:27:40 foxr Exp $
+# $Id: lcuseradd,v 1.24 2002/12/09 16:15:51 www Exp $
 ###
 
 ###############################################################################
@@ -120,6 +120,8 @@ delete @ENV{qw(IFS CDPATH ENV BASH_ENV)}
 # Do not print error messages.
 my $noprint=1;
 
+print "In lcuseradd\n" unless $noprint;
+
 # ----------------------------- Make sure this process is running from user=www
 my $wwwid=getpwnam('www');
 &disable_root_capability;
@@ -162,11 +164,11 @@ else {
 }
 
 my ($username,$password1,$password2)=@input;
-print "Username = ".$username unless $noprint;
+print "Username = ".$username."\n" unless $noprint;
 $username=~/^(\w+)$/;
 print "Username after substitution - ".$username unless $noprint;
 my $safeusername=$1;
-print "Safe username = $safeusername" unless $noprint;
+print "Safe username = $safeusername \n" unless $noprint;
 
 if (($username ne $safeusername) or ($safeusername!~/^[A-Za-z]/)) {
     print "Error. The user name specified $username $safeusername  has invalid characters.\n"
@@ -191,30 +193,36 @@ if (-e "/home/$safeusername") {
 }
 
 # -- Only add user if the two password arguments match.
+
 if ($password1 ne $password2) {
     print "Error. Password mismatch.\n" unless $noprint;
     unlink('/tmp/lock_lcpasswd');
     exit 13;
 }
-
+print "enabling root\n" unless $noprint;
 # ---------------------------------- Start running script with root permissions
 &enable_root_capability;
 
 # ------------------- Add user and make www a member of the user-specific group
 # -- Add user
-if (system('/usr/sbin/useradd','-c','LON-CAPA user',$safeusername)) {
+
+print "adding user: $safeusername \n" unless $noprint;
+my $status = system('/usr/sbin/useradd','-c','LON-CAPA user',$safeusername);
+if ($status) {
     print "Error.  Something went wrong with the addition of user ".
 	  "\"$safeusername\".\n" unless $noprint;
+    print "Final status of useradd = $status";
     unlink('/tmp/lock_lcpasswd');
     exit 12;
 }
-
+print "Done adding user\n" unless $noprint;
 # Make www a member of that user group.
 my $groups=`/usr/bin/groups www` or exit(6);
 chomp $groups; $groups=~s/^\S+\s+\:\s+//;
 my @grouplist=split(/\s+/,$groups);
 my @ugrouplist=grep {!/www|$safeusername/} @grouplist;
 my $gl=join(',',(@ugrouplist,$safeusername));
+print "Putting user in its own group\n" unless $noprint;
 if (system('/usr/sbin/usermod','-G',$gl,'www')) {
     print "Error. Could not make www a member of the group ".
 	  "\"$safeusername\".\n" unless $noprint;
@@ -228,6 +236,7 @@ if (system('/usr/sbin/usermod','-G',$gl,
 unlink('/tmp/lock_lcpasswd');
 &disable_root_capability;
 ($>,$<)=($wwwid,$wwwid);
+print "Opening lcpasswd pipeline\n" unless $noprint;
 open OUT,"|/home/httpd/perl/lcpasswd";
 print OUT $safeusername;
 print OUT "\n";
@@ -237,6 +246,7 @@ print OUT $password1;
 print OUT "\n";
 close OUT;
 if ($?) {
+    print "abnormal exit from close lcpasswd\n" unless $noprint;
     exit 8;
 }
 ($>,$<)=($wwwid,0);
@@ -259,34 +269,36 @@ print OUT<<END;
 <title>$safeusername</title>
 </head>
 <body>
-<h1>$safeusername</h1>
-<p>
-Learning Online Network
-</p>
-<p>
-This area provides for:
-</p>
-<ul>
-<li>resource construction</li>
-<li>resource publication</li>
-<li>record-keeping</li>
-</ul>
+<h1>Construction Space</h1>
+<h3>$safeusername</h3>
 </body>
 </html>
 END
 close OUT;
 
+print "lcuseradd ownership\n" unless $noprint;
 system('/bin/chown','-R',"$safeusername:$safeusername","/home/$safeusername");
-
+# ---------------------------------------------------- Gracefull Apache Restart
+if (-e '/var/run/httpd.pid') {
+    print "lcuseradd Apache restart\n" unless $noprint;
+    open(PID,'/var/run/httpd.pid');
+    my $pid=<PID>;
+    close(PID);
+    $pid=~s/\D+//g;
+    if ($pid) {
+	system('kill','-USR1',"$pid");
+    }
+}
 # -------------------------------------------------------- Exit script
+print "lcuseradd exiting\n" unless $noprint;
 &disable_root_capability;
 exit 0;
 
 # ---------------------------------------------- Have setuid script run as root
 sub enable_root_capability {
     if ($wwwid==$>) {
-	($<,$>)=($>,$<);
-	($(,$))=($),$();
+	($<,$>)=($>,0);
+	($(,$))=($),0);
     }
     else {
 	# root capability is already enabled