--- loncom/interface/loncreateuser.pm	2001/03/17 15:42:24	1.8
+++ loncom/interface/loncreateuser.pm	2001/05/10 21:13:04	1.17
@@ -16,7 +16,9 @@
 #
 # 2/14 Gerd Kortemeyer)
 #
-# 2/14,2/17,2/19,2/20,2/21,2/22,2/23,3/2,3/17 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;
 
@@ -108,7 +110,9 @@ ENDENHEAD
     my $uhome=&Apache::lonnet::homeserver($ccuname,$ccdomain);
     my %incdomains; 
     my %inccourses;
-    $incdomains{$ENV{'user.domain'}}=1;
+    map {
+       $incdomains{$_}=1;
+    } values %Apache::lonnet::hostdom;
     map {
 	if ($_=~/^user\.priv\.cm\.\/(\w+)\/(\w+)/) {
 	    $inccourses{$1.'_'.$2}=1;
@@ -194,7 +198,6 @@ ENDNUSER
                  $area=$carea;
 	      } else {
                  if ($area=~/^\/(\w+)\//) {
-		     $incdomains{$1}=1;
                      if (&Apache::lonnet::allowed('c'.$trole,$1)) {
 			 $allows=1;
                      }
@@ -228,7 +231,32 @@ ENDNUSER
 	   $r->print('</table>');
          }   
     }
-    $r->print('<hr><h3>Add Roles</h3><h4>System Level</h4>');
+    $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
 #
@@ -254,7 +282,7 @@ ENDNUSER
 </tr>
 ENDDROW
             }
-        } ('dc','cc','li','dg','au');
+        } ('dc','li','dg','au');
     } sort keys %incdomains;
     $r->print('</table>');
 #
@@ -265,6 +293,8 @@ ENDDROW
     '<th>Group/Section</th><th>Start</th><th>End</th></tr>');
     map {
 	my $thiscourse=$_;
+	my $protectedcourse=$_;
+        $thiscourse=~s:_:/:g;
         my %coursedata=&Apache::lonnet::coursedescription($thiscourse);
         my $area=$coursedata{'description'};
         my $bgcol=$thiscourse;
@@ -273,23 +303,26 @@ 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');
+        } ('st','ta','ep','ad','in','cc');
     } sort keys %inccourses;
     $r->print('</table>');
     $r->print('<input type=submit value="Modify User">');
@@ -346,6 +379,17 @@ ENDTHREEHEAD
            $r->print('Revoking '.$2.' in '.$1.': '.
           &Apache::lonnet::assignrole($ENV{'form.cdomain'},$ENV{'form.cuname'},
                                       $1,$2,$now).'<br>');
+           if ($2 eq 'st') {
+               $1=~/^\/(\w+)\/(\w+)/;
+               my $cid=$1.'_'.$2;
+	       $r->print('Drop from classlist: '.
+          &Apache::lonnet::critical('put:'.$ENV{'course.'.$cid.'.domain'}.':'.
+	              $ENV{'course.'.$cid.'.num'}.':classlist:'.
+                      &Apache::lonnet::escape($ENV{'form.cuname'}.':'.
+                                              $ENV{'form.cdomain'}).'='.
+                      &Apache::lonnet::escape($now.':'),
+	              $ENV{'course.'.$cid.'.home'}).'<br>');
+           }
 	}
     } keys %ENV;
     map {
@@ -365,6 +409,17 @@ ENDTHREEHEAD
             $r->print('Assigning: '.$3.' in '.$url.': '.
           &Apache::lonnet::assignrole($ENV{'form.cdomain'},$ENV{'form.cuname'},
                                       $url,$3,$end,$start).'<br>');
+            if ($3 eq 'st') {
+		$url=~/^\/(\w+)\/(\w+)/;
+                my $cid=$1.'_'.$2;
+               $r->print('Add to classlist: '.
+          &Apache::lonnet::critical('put:'.$ENV{'course.'.$cid.'.domain'}.':'.
+	              $ENV{'course.'.$cid.'.num'}.':classlist:'.
+                      &Apache::lonnet::escape($ENV{'form.cuname'}.':'.
+                                              $ENV{'form.cdomain'}).'='.
+                      &Apache::lonnet::escape($end.':'.$start),
+	              $ENV{'course.'.$cid.'.home'}).'<br>');
+	    }
 	} elsif (($_=~/^form\.act\_([^\_]+)\_([^\_]+)$/) && ($ENV{$_})) {
             my $url='/'.$1.'/';
             my $start=$now;
@@ -410,7 +465,7 @@ sub handler {
        }
    } else {
       $ENV{'user.error.msg'}=
-        "/adm/createcourse:mau:0:0:Cannot modify user data";
+        "/adm/createuser:mau:0:0:Cannot modify user data";
       return HTTP_NOT_ACCEPTABLE; 
    }
    return OK;