--- loncom/interface/loncreateuser.pm	2001/04/12 23:12:58	1.13
+++ loncom/interface/loncreateuser.pm	2001/08/24 21:09:53	1.18
@@ -17,6 +17,8 @@
 # 2/14 Gerd Kortemeyer)
 #
 # 2/14,2/17,2/19,2/20,2/21,2/22,2/23,3/2,3/17,3/24,04/12 Gerd Kortemeyer
+# April Guy Albertelli
+# 05/10 Gerd Kortemeyer 
 #
 package Apache::loncreateuser;
 
@@ -110,7 +112,7 @@ ENDENHEAD
     my %inccourses;
     map {
        $incdomains{$_}=1;
-    } %Apache::lonnet::hostdom;
+    } values %Apache::lonnet::hostdom;
     map {
 	if ($_=~/^user\.priv\.cm\.\/(\w+)\/(\w+)/) {
 	    $inccourses{$1.'_'.$2}=1;
@@ -125,6 +127,7 @@ function setkrb(vf) {
        vf.login[0].checked=true;
        vf.krbdom.value=vf.krbdom.value.toUpperCase();
        vf.intpwd.value='';
+       vf.locarg.value='';
    }
 }
 
@@ -132,16 +135,32 @@ function setint(vf) {
     if (vf.intpwd.value!='') {
        vf.login[1].checked=true;
        vf.krbdom.value='';
+       vf.locarg.value='';
+   }
+}
+
+function setloc(vf) {
+    if (vf.locarg.value!='') {
+       vf.login[2].checked=true;
+       vf.krbdom.value='';
+       vf.intpwd.value='';
    }
 }
 
 function clickkrb(vf) {
     vf.krbdom.value='$krbdefdom';
     vf.intpwd.value='';
+    vf.locarg.value='';
 }
 
 function clickint(vf) {
     vf.krbdom.value='';
+    vf.locarg.value='';
+}
+
+function clickloc(vf) {
+    vf.krbdom.value='';
+    vf.intpwd.value='';
 }
 </script>
 <input type=hidden name=makeuser value=1>
@@ -160,6 +179,11 @@ Kerberos authenticated with domain
 <input type=radio name=login value=int onClick="clickint(this.form);"> 
 Internally authenticated (with initial password 
 <input type=text size=10 name=intpwd onChange="setint(this.form);">)
+<p>
+<input type=radio name=login value=loc onClick="clickloc(this.form);" />
+Local Authentication with argument
+<input type=text size=10 name=locarg onChange="setloc(this.form);" />
+</p>
 ENDNUSER
     } else {
 	$r->print('<h2>Existing user '.$ccuname.' at '.$ccdomain.'</h2>');
@@ -231,6 +255,31 @@ ENDNUSER
     }
     $r->print('<hr><h3>Add Roles</h3>');
 #
+# Co-Author
+# 
+
+    if (&Apache::lonnet::allowed('cca',$ENV{'user.domain'})) {
+	my $cuname=$ENV{'user.name'};
+        my $cudom=$ENV{'user.domain'};
+       $r->print(<<ENDCOAUTH);
+<h4>Construction Space</h4>
+<table border=2><tr><th>Activate</th><th>Role</th><th>Extent</th>
+<th>Start</th><th>End</th></tr>
+<tr>
+<td><input type=checkbox name="act_$cudom\_$cuname\_ca"></td>
+<td>Co-Author</td>
+<td>$cudom\_$cuname</td>
+<td><input type=hidden name="start_$cudom\_$cuname\_ca" value=''>
+<a href=
+"javascript:pjump('date_start','Start Date Co-Author',document.cu.start_$cudom\_$cuname\_ca.value,'start_$cudom\_$cuname\_ca','cu.pres','dateset')">Set Start Date</a></td>
+<td><input type=hidden name="end_$cudom\_$cuname\_ca" value=''>
+<a href=
+"javascript:pjump('date_end','End Date Co-Author',document.cu.end_$cudom\_$cuname\_ca.value,'end_$cudom\_$cuname\_ca','cu.pres','dateset')">Set End Date</a></td>
+</tr>
+</table>
+ENDCOAUTH
+    }
+#
 # Domain level
 #
     $r->print('<h4>Domain Level</h4>'.
@@ -266,7 +315,8 @@ ENDDROW
     '<th>Group/Section</th><th>Start</th><th>End</th></tr>');
     map {
 	my $thiscourse=$_;
-        $thiscourse=~s/\_/\//g;
+	my $protectedcourse=$_;
+        $thiscourse=~s:_:/:g;
         my %coursedata=&Apache::lonnet::coursedescription($thiscourse);
         my $area=$coursedata{'description'};
         my $bgcol=$thiscourse;
@@ -275,21 +325,24 @@ ENDDROW
         map {
             if (&Apache::lonnet::allowed('c'.$_,$thiscourse)) {
                my $plrole=&Apache::lonnet::plaintext($_);
-               $r->print(<<ENDROW);
+               $r->print("
 <tr bgcolor=#$bgcol>
-<td><input type=checkbox name="act_$thiscourse\_$_"></td>
+<td><input type=checkbox name=\"act_$protectedcourse\_$_\"></td>
 <td>$plrole</td>
 <td>$area</td>
-<td><input type=text size=5 name="sec_$thiscourse\_$_"></td>
-<td><input type=hidden name="start_$thiscourse\_$_" value=''>
+<td>");
+	       if ($_ ne 'cc') {
+		 $r->print("<input type=text size=5 name=\"sec_$protectedcourse\_$_\">");
+	       } else { $r->print("&nbsp"); }
+	       $r->print(<<ENDROW);
+<td><input type=hidden name="start_$protectedcourse\_$_" value=''>
 <a href=
-"javascript:pjump('date_start','Start Date $plrole',document.cu.start_$thiscourse\_$_.value,'start_$thiscourse\_$_','cu.pres','dateset')">Set Start Date</a></td>
-<td><input type=hidden name="end_$thiscourse\_$_" value=''>
+"javascript:pjump('date_start','Start Date $plrole',document.cu.start_$protectedcourse\_$_.value,'start_$protectedcourse\_$_','cu.pres','dateset')">Set Start Date</a></td>
+<td><input type=hidden name="end_$protectedcourse\_$_" value=''>
 <a href=
-"javascript:pjump('date_end','End Date $plrole',document.cu.end_$thiscourse\_$_.value,'end_$thiscourse\_$_','cu.pres','dateset')">Set End Date</a></td>
+"javascript:pjump('date_end','End Date $plrole',document.cu.end_$protectedcourse\_$_.value,'end_$protectedcourse\_$_','cu.pres','dateset')">Set End Date</a></td>
 </tr>
 ENDROW
-
             }
         } ('st','ta','ep','ad','in','cc');
     } sort keys %inccourses;
@@ -324,7 +377,11 @@ ENDTHREEHEAD
         } elsif ($ENV{'form.login'} eq 'int') {
            $amode='internal';
            $genpwd=$ENV{'form.intpwd'};
-        }
+        } elsif ($ENV{'form.login'} eq 'loc') {
+	    $amode='localauth';
+	    $genpwd=$ENV{'form.locarg'};
+	    if (!$genpwd) { $genpwd=" "; }
+	}
         if (($amode) && ($genpwd)) {
           $r->print('Generating user: '.&Apache::lonnet::modifyuser(
                       $ENV{'form.cdomain'},$ENV{'form.cuname'},