--- loncom/interface/loncreatecourse.pm	2004/02/02 20:21:25	1.49
+++ loncom/interface/loncreatecourse.pm	2004/05/08 00:48:30	1.56
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # Create a course
 #
-# $Id: loncreatecourse.pm,v 1.49 2004/02/02 20:21:25 www Exp $
+# $Id: loncreatecourse.pm,v 1.56 2004/05/08 00:48:30 www Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -286,6 +286,8 @@ sub print_course_creation_page {
                     'dsuc' => "Disable student use of chatrooms",
                     'acco' => "Access Control",
                     'snak' => "Students need access key to enter course",
+		    'kaut' => 
+		    'Key authority (<tt>id@domain</tt>) if other than course',
                     'cc'   => "Course Coordinator",
                     'user' => "Username",
                     'ierc' => "Immediately expire own role as Course Coordinator",
@@ -301,6 +303,7 @@ sub print_course_creation_page {
                     'nech' => "Notification of enrollment changes",
                     'nccl' => "Notification to course coordinator via LON-CAPA message when enrollment changes occur during the automated update?",
                     'irsp' => "Include retrieval of student photographs?",
+		    'rshm' => 'Resource Space Home',
                     'opco' => "Open Course"
 				       );
     $r->print(<<ENDDOCUMENT);
@@ -390,13 +393,13 @@ $lt{'asov'}.
 <h2>$lt{'assp'}</h2>
 <p>
 <b>$lt{'oaas'}: </b>
-<input type="checkbox" name="openall" checked>
+<input type="checkbox" name="openall" />
 </p>
 <h2>$lt{'mssg'}</h2>
 <p>
 <b>$lt{'scpf'}: </b>
 <input type="checkbox" name="setpolicy" checked>
-</p><p>
+<br />
 <b>$lt{'scfc'}: </b>
 <input type="checkbox" name="setcontent" checked>
 </p>
@@ -410,17 +413,16 @@ $lt{'asov'}.
 <h2>$lt{'acco'}</h2>
 <p>
 <b>$lt{'snak'}: </b>
-<input type="checkbox" name="setkeys" />
+<input type="checkbox" name="setkeys" /><br />
+<b>$lt{'kaut'}: </b>
+<input type="text" size="30" name="keyauth" />
+</p>
+<h2>$lt{'rshm'}</h2>
+<p>
+<b>$lt{'rshm'}: </b>
+<input type="text" name="reshome" size="30" value="/res/$defdom/" />
 </p>
-<h2>$lt{'cc'}</h2>
 <p>
-<b>$lt{'user'}:</b> <input type="text" size="15" name="ccuname" />
-</p><p>
-<b>$lt{'dmn'}:</b> $domform
-</p><p>
-<b>$lt{'ierc'}:</b>
-<input type="checkbox" name="expireown" checked>
-</p><p>
 <h2>$lt{'aens'}</h2>
 $lt{'aesc'}
 </p>
@@ -449,7 +451,18 @@ $lt{'nccl'}<br/>
 value="0" checked="true" />$lt{'no'}
 </p><p>
 <b>$lt{'irsp'}</b> <input type="radio" name="showphotos" value="1" />$lt{'yes'} <input type="radio" name="showphotos" value="0" checked="true" />$lt{'no'}
+</p>
+<hr />
+<h2>$lt{'cc'}</h2>
+<p>
+<b>$lt{'user'}:</b> <input type="text" size="15" name="ccuname" />
+</p><p>
+<b>$lt{'dmn'}:</b> $domform
 </p><p>
+<b>$lt{'ierc'}:</b>
+<input type="checkbox" name="expireown" checked>
+</p>
+<p>
 <input type="hidden" name="phase" value="two" />
 <input type="button" onClick="verify_message(this.form)" value="$lt{'opco'}">
 </p>
@@ -483,7 +496,16 @@ ENDENHEAD
     #
     # Check the veracity of the course coordinator
     if (&Apache::lonnet::homeserver($ccuname,$ccdomain) eq 'no_host') {
-        $r->print(&mt('No such user').' '.$ccuname.' '.&mt('at').' '.$ccdomain.'</body></html>');
+	$r->print('<form action="/adm/createuser" method="post" name="crtuser">');
+        $r->print(&mt('No such user').' '.$ccuname.' '.&mt('at').' '.$ccdomain.'.<br />');
+	$r->print(&mt("Please click Back on your browser and select another user, or "));
+	$r->print('
+	    <input type="hidden" name="phase" value="get_user_info" />
+            <input type="hidden" name="ccuname" value="'.$ccuname.'" />
+            <input type="hidden" name="ccdomain" value="'.$ccdomain.'" />
+            <input name="userrole" type="submit" value="'.
+		  &mt('Create User').'" />
+	</form></body></html>');
 	return;
     }
     # Check the proposed home server for the course
@@ -537,6 +559,8 @@ ENDENHEAD
 	    $cenv{'description'}=$oldcenv{'description'};
 # Mark as cloned
 	    $cenv{'clonedfrom'}=$cloneid;
+	    delete($cenv{'default_enrollment_start_date'});
+	    delete($cenv{'default_enrollment_end_date'});
 	}
     }
 #
@@ -654,9 +678,25 @@ ENDENHEAD
            $cenv{'question.email'}=$ccuname.':'.$ccdomain;
        }
     }
+    if ($ENV{'form.reshome'}) {
+	$cenv{'reshome'}=$ENV{'form.reshome'}.'/';
+	$cenv{'reshome'}=~s/\/+$/\//;
+    }
+#
+# course has keyed access
+#
     if ($ENV{'form.setkeys'}) {
        $cenv{'keyaccess'}='yes';
     }
+# if specified, key authority is not course, but user
+# only active if keyaccess is yes
+    if ($ENV{'form.keyauth'}) {
+	$ENV{'form.keyauth'}=~s/[^\w\@]//g;
+	if ($ENV{'form.keyauth'}) {
+	    $cenv{'keyauth'}=$ENV{'form.keyauth'};
+	}
+    }
+
     if ($ENV{'form.disresdis'}) {
         $cenv{'pch.roles.denied'}='st';
     }
@@ -671,6 +711,12 @@ ENDENHEAD
     # Use new Randomseed
     #
     $cenv{'rndseed'}=&Apache::lonnet::latest_rnd_algorithm_id();;
+    $cenv{'receiptalg'}=&Apache::lonnet::latest_receipt_algorithm_id();;
+    #
+    # The encryption code and receipt prefix for this course
+    #
+    $cenv{'internal.encseed'}=$Apache::lonnet::perlvar{'lonReceipt'}.$$.time.int(rand(9999));
+    $cenv{'internal.encpref'}=100+int(9*rand(99));
     #
     # By default, use standard grading
     $cenv{'grading'} = 'standard';