--- loncom/interface/loncreateuser.pm	2004/12/28 22:30:28	1.94
+++ loncom/interface/loncreateuser.pm	2005/02/17 08:29:42	1.100
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Create a user
 #
-# $Id: loncreateuser.pm,v 1.94 2004/12/28 22:30:28 matthew Exp $
+# $Id: loncreateuser.pm,v 1.100 2005/02/17 08:29:42 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -122,6 +122,7 @@ sub print_username_entry_form {
     my $defdom=$ENV{'request.role.domain'};
     my @domains = &Apache::loncommon::get_domains();
     my $domform = &Apache::loncommon::select_dom_form($defdom,'ccdomain');
+    my $html=&Apache::lonxml::xmlbegin();
     my $bodytag =&Apache::loncommon::bodytag('Create Users, Change User Privileges').&Apache::loncommon::help_open_menu('',undef,undef,'',282,'Instructor Interface');
     my $selscript=&Apache::loncommon::studentbrowser_javascript();
     my $sellink=&Apache::loncommon::selectstudent_link
@@ -141,7 +142,7 @@ sub print_username_entry_form {
     my $helpsiur=&Apache::loncommon::help_open_topic('Course_Change_Privileges');
     my $helpecpr=&Apache::loncommon::help_open_topic('Course_Editing_Custom_Roles');
     $r->print(<<"ENDDOCUMENT");
-<html>
+$html
 <head>
 <title>The LearningOnline Network with CAPA</title>
 $selscript
@@ -173,8 +174,8 @@ sub print_user_modification_page {
     my $ccuname=$ENV{'form.ccuname'};
     my $ccdomain=$ENV{'form.ccdomain'};
 
-    $ccuname=~s/[\W|_]//gs;
-    $ccdomain=~s/[\W|_]//gs;
+    $ccuname=~s/\W//g;
+    $ccdomain=~s/\W//g;
 
     unless (($ccuname) && ($ccdomain)) {
 	&print_username_entry_form($r);
@@ -271,8 +272,9 @@ sub print_user_modification_page {
     }
 ENDSCRIPT
     }
+    my $html=&Apache::lonxml::xmlbegin();
     my $dochead =<<"ENDDOCHEAD";
-<html>
+$html
 <head>
 <title>The LearningOnline Network with CAPA</title>
 <script type="text/javascript" language="Javascript">
@@ -859,8 +861,9 @@ sub update_user_data {
     my $error     = '<font color="#ff0000">'.&mt('Error').':</font>';
     my $end       = '</body></html>';
     # Print header
+    my $html=&Apache::lonxml::xmlbegin();
     $r->print(<<ENDTHREEHEAD);
-<html>
+$html
 <head>
 <title>The LearningOnline Network with CAPA</title>
 </head>
@@ -1126,6 +1129,8 @@ END
 		}
 	    } 
 	} elsif ($_=~/^form\.ren/) {
+            my $udom = $ENV{'form.ccdomain'};
+            my $uname = $ENV{'form.ccuname'};
 	    if ($_=~/^form\.ren\:([^\_]+)\_([^\_]+)$/) {
                 my $url = $1;
                 my $role = $2;
@@ -1133,7 +1138,7 @@ END
                 my $output;
                 if ($role eq 'st') {
                     if ($url =~ m-^/(\w+)/(\w+)/?(\w*)$-) {
-                        my $result = &commit_studentrole(\$logmsg,$url,$role,$now,0,$1,$2,$3);
+                        my $result = &commit_studentrole(\$logmsg,$udom,$uname,$url,$role,$now,0,$1,$2,$3);
                         if (($result =~ /^error/) || ($result eq 'not_in_class') || ($result eq 'unknown_course')) {
                             $output = "Error: $result\n";
                         } else {
@@ -1152,6 +1157,8 @@ END
                 $r->print($output);
 	    } 
 	} elsif ($_=~/^form\.act/) {
+            my $udom = $ENV{'form.ccdomain'};
+            my $uname = $ENV{'form.ccuname'};
 	    if ($_=~/^form\.act\_([^\_]+)\_([^\_]+)\_cr_cr_([^\_]+)_(\w+)_([^\_]+)$/) {
                 # Activate a custom role
 		my ($one,$two,$three,$four,$five)=($1,$2,$3,$4,$5);
@@ -1169,14 +1176,14 @@ END
                 my %sections = ();
                 my $num_sections = &build_roles($ENV{'form.sec_'.$full},\%sections,$5);
                 if ($num_sections == 0) {
-                    $r->print(&commit_customrole($url,$three,$four,$five,$start,$end));
+                    $r->print(&commit_customrole($udom,$uname,$url,$three,$four,$five,$start,$end));
                 } else {
                     foreach (sort {$a cmp $b} keys %sections) {
                         my $securl = $url.'/'.$_;
-		        $r->print(&commit_customrole($securl,$three,$four,$five,$start,$end));
+		        $r->print(&commit_customrole($udom,$uname,$securl,$three,$four,$five,$start,$end));
                     }
                 }
-	    } elsif ($_=~/^form\.act\_([^\_]+)\_([^\_]+)\_([^\_]+)$/) {
+	    } elsif ($_=~/^form\.act\_([^\_]+)\_(\w+)\_([^\_]+)$/) {
 		# Activate roles for sections with 3 id numbers
 		# set start, end times, and the url for the class
 		my ($one,$two,$three)=($1,$2,$3);
@@ -1192,20 +1199,20 @@ END
                 my %sections = ();
                 my $num_sections = &build_roles($ENV{'form.sec_'.$one.'_'.$two.'_'.$three},\%sections,$three);
                 if ($num_sections == 0) {
-                    $r->print(&commit_standardrole($url,$three,$start,$end,$one,$two,''));
+                    $r->print(&commit_standardrole($udom,$uname,$url,$three,$start,$end,$one,$two,''));
                 } else {
                     my $emptysec = 0;
                     foreach my $sec (sort {$a cmp $b} keys %sections) {
                         $sec =~ s/\W//g;
                         if ($sec ne '') {  
                             my $securl = $url.'/'.$sec;
-                            $r->print(&commit_standardrole($securl,$three,$start,$end,$one,$two,$sec));
+                            $r->print(&commit_standardrole($udom,$uname,$securl,$three,$start,$end,$one,$two,$sec));
                         } else {
                             $emptysec = 1;
                         }
                     }
                     if ($emptysec) {
-                        $r->print(&commit_standardrole($url,$three,$start,$end,$one,$two,''));
+                        $r->print(&commit_standardrole($udom,$uname,$url,$three,$start,$end,$one,$two,''));
                     }
                 } 
 	    } elsif ($_=~/^form\.act\_([^\_]+)\_([^\_]+)$/) {
@@ -1222,29 +1229,21 @@ END
                 my %sections = ();
                 my $num_sections = &build_roles($ENV{'form.sec_'.$1.'_'.$2},\%sections,$2);
                 if ($num_sections == 0) {
-                    $r->print(&commit_standardrole($url,$2,$start,$end,$1,undef,''));
+                    $r->print(&commit_standardrole($udom,$uname,$url,$2,$start,$end,$1,undef,''));
                 } else {
                     my $emptysec = 0;
                     foreach my $sec (sort {$a cmp $b} keys %sections) {
                         if ($sec ne '') {
                             my $securl = $url.'/'.$sec;
-                            $r->print(&commit_standardrole($securl,$2,$start,$end,$1,undef,$sec));
+                            $r->print(&commit_standardrole($udom,$uname,$securl,$2,$start,$end,$1,undef,$sec));
                         } else {
                             $emptysec = 1;
                         }
                     }
                     if ($emptysec) {
-                        $r->print(&commit_standardrole($url,$2,$start,$end,$1,undef,''));
+                        $r->print(&commit_standardrole($udom,$uname,$url,$2,$start,$end,$1,undef,''));
                     }
                 }
-		# Assign the role and report it.
-		$r->print(&mt('Assigning').' '.$2.' in '.$url.': '.
-                         ($start?', '.&mt('starting').' '.localtime($start):'').
-                         ($end?', '.&mt('ending').' '.localtime($end):'').': <b>'.
-                          &Apache::lonnet::assignrole(
-                              $ENV{'form.ccdomain'},$ENV{'form.ccuname'},
-                              $url,$2,$end,$start)
-			  .'</b><br>');
 	    } else {
 		$r->print('<p>'.&mt('ERROR').': '.&mt('Unknown command').' <tt>'.$_.'</tt></p><br>');
             }
@@ -1256,22 +1255,22 @@ END
 }
 
 sub commit_customrole {
-    my ($url,$three,$four,$five,$end,$start) = @_;
+    my ($udom,$uname,$url,$three,$four,$five,$start,$end) = @_;
     my $output = &mt('Assigning custom role').' "'.$five.'" by '.$four.'@'.$three.' in '.$url.
                          ($start?', '.&mt('starting').' '.localtime($start):'').
                          ($end?', ending '.localtime($end):'').': <b>'.
               &Apache::lonnet::assigncustomrole(
-        $ENV{'form.ccdomain'},$ENV{'form.ccuname'},$url,$three,$four,$five,$end,$start).
-              '</b><br>';
+                 $udom,$uname,$url,$three,$four,$five,$end,$start).
+                 '</b><br>';
     return $output;
 }
 
 sub commit_standardrole {
-    my ($url,$three,$start,$end,$one,$two,$sec) = @_;
+    my ($udom,$uname,$url,$three,$start,$end,$one,$two,$sec) = @_;
     my $output;
     my $logmsg;
     if ($three eq 'st') {
-        my $result = &commit_studentrole(\$logmsg,$url,$three,$start,$end,$one,$two,$sec);
+        my $result = &commit_studentrole(\$logmsg,$udom,$uname,$url,$three,$start,$end,$one,$two,$sec);
         if (($result =~ /^error/) || ($result eq 'not_in_class') || ($result eq 'unknown_course')) {
             $output = "Error: $result\n"; 
         } else {
@@ -1286,17 +1285,14 @@ sub commit_standardrole {
                ($start?', '.&mt('starting').' '.localtime($start):'').
                ($end?', '.&mt('ending').' '.localtime($end):'').': <b>'.
                &Apache::lonnet::assignrole(
-                   $ENV{'form.ccdomain'},$ENV{'form.ccuname'},
-                   $url,$three,$end,$start).
+                   $udom,$uname,$url,$three,$end,$start).
                    '</b><br>';
     }
     return $output;
 }
 
 sub commit_studentrole {
-    my ($logmsg,$url,$three,$start,$end,$one,$two,$sec) = @_;
-    my $udom = $ENV{'form.ccdomain'};
-    my $uname = $ENV{'form.ccuname'};
+    my ($logmsg,$udom,$uname,$url,$three,$start,$end,$one,$two,$sec) = @_;
     my $linefeed =  '<br />'."\n";
     my $result;
     if (defined($one) && defined($two)) {
@@ -1722,7 +1718,7 @@ sub course_sections {
         $output = '<select name="currsec_'.$role.'" ';
         my $multiple = 4;
         if ($num_sections <4) { $multiple = $num_sections; }
-        $output .= '"multiple size="'.$multiple.'" >'."\n";
+        $output .= '"multiple" size="'.$multiple.'">'."\n";
         foreach (@sections) {
             $output .= '<option value="'.$_.'">'.$_."</option>\n";
         }