--- loncom/interface/loncreatecourse.pm	2004/05/04 20:43:21	1.55
+++ loncom/interface/loncreatecourse.pm	2004/05/11 06:02:58	1.57
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # Create a course
 #
-# $Id: loncreatecourse.pm,v 1.55 2004/05/04 20:43:21 www Exp $
+# $Id: loncreatecourse.pm,v 1.57 2004/05/11 06:02:58 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -42,6 +42,7 @@ use localenroll;
 
 # ================================================ Get course directory listing
 
+#FIXME - doesn't support directories under /userfiles/ BUG#2999
 sub crsdirlist {
     my ($courseid,$which)=@_;
     unless ($which) { $which=''; }
@@ -51,6 +52,7 @@ sub crsdirlist {
 	 &Apache::loncommon::propath($crsdata{'domain'},$crsdata{'num'}));
     my @output=();
     foreach (@listing) {
+	#FIXME if list is a DIR need to recurse
 	unless ($_=~/^\./) {
 	    push (@output,(split(/\&/,$_))[0]);
 	}
@@ -286,6 +288,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",
@@ -411,7 +415,9 @@ $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>
@@ -678,9 +684,21 @@ ENDENHEAD
 	$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';
     }