version 1.78, 2004/02/01 20:42:01
|
version 1.85, 2004/07/19 17:58:10
|
Line 123 sub print_username_entry_form {
|
Line 123 sub print_username_entry_form {
|
my $defdom=$ENV{'request.role.domain'}; |
my $defdom=$ENV{'request.role.domain'}; |
my @domains = &Apache::loncommon::get_domains(); |
my @domains = &Apache::loncommon::get_domains(); |
my $domform = &Apache::loncommon::select_dom_form($defdom,'ccdomain'); |
my $domform = &Apache::loncommon::select_dom_form($defdom,'ccdomain'); |
my $bodytag =&Apache::loncommon::bodytag( |
my $bodytag =&Apache::loncommon::bodytag('Create Users, Change User Privileges').&Apache::loncommon::help_open_menu('',undef,undef,'',282,'Instructor Interface'); |
'Create Users, Change User Privileges'). |
|
&Apache::loncommon::help_open_faq(282). |
|
&Apache::loncommon::help_open_bug('Instructor Interface'); |
|
my $selscript=&Apache::loncommon::studentbrowser_javascript(); |
my $selscript=&Apache::loncommon::studentbrowser_javascript(); |
my $sellink=&Apache::loncommon::selectstudent_link |
my $sellink=&Apache::loncommon::selectstudent_link |
('crtuser','ccuname','ccdomain'); |
('crtuser','ccuname','ccdomain'); |
Line 177 sub print_user_modification_page {
|
Line 174 sub print_user_modification_page {
|
my $ccuname=$ENV{'form.ccuname'}; |
my $ccuname=$ENV{'form.ccuname'}; |
my $ccdomain=$ENV{'form.ccdomain'}; |
my $ccdomain=$ENV{'form.ccdomain'}; |
|
|
$ccuname=~s/\W//gs; |
$ccuname=~s/[\W|_]//gs; |
$ccdomain=~s/\W//gs; |
$ccdomain=~s/[\W|_]//gs; |
|
|
unless (($ccuname) && ($ccdomain)) { |
unless (($ccuname) && ($ccdomain)) { |
&print_username_entry_form($r); |
&print_username_entry_form($r); |
Line 250 ENDFORMINFO
|
Line 247 ENDFORMINFO
|
'<option value="default" selected>default</option>'."\n". |
'<option value="default" selected>default</option>'."\n". |
&Apache::loncommon::home_server_option_list($ccdomain); |
&Apache::loncommon::home_server_option_list($ccdomain); |
|
|
my %lt=&Apache::lonlocal::texthash( |
my %lt=&Apache::lonlocal::texthash( |
'cnu' => "Create New User", |
'cnu' => "Create New User", |
'nu' => "New User", |
'nu' => "New User", |
'id' => "in domain", |
'id' => "in domain", |
Line 296 $lt{'hs'}: <select name="hserver" size="
|
Line 293 $lt{'hs'}: <select name="hserver" size="
|
<p>$authformloc </p> |
<p>$authformloc </p> |
ENDNEWUSER |
ENDNEWUSER |
} else { # user already exists |
} else { # user already exists |
my %lt=&Apache::lonlocal::texthash( |
my %lt=&Apache::lonlocal::texthash( |
'cup' => "Change User Privileges", |
'cup' => "Change User Privileges", |
'usr' => "User", |
'usr' => "User", |
'id' => "in domain", |
'id' => "in domain", |
Line 345 END
|
Line 342 END
|
'rer' => "Revoke Existing Roles", |
'rer' => "Revoke Existing Roles", |
'rev' => "Revoke", |
'rev' => "Revoke", |
'del' => "Delete", |
'del' => "Delete", |
|
'ren' => "Re-Enable", |
'rol' => "Role", |
'rol' => "Role", |
'ext' => "Extent", |
'ext' => "Extent", |
'sta' => "Start", |
'sta' => "Start", |
Line 353 END
|
Line 351 END
|
$r->print(<<END); |
$r->print(<<END); |
<hr /> |
<hr /> |
<h3>$lt{'rer'}</h3> |
<h3>$lt{'rer'}</h3> |
<table border=2> |
<table> |
<tr><th>$lt{'rev'}</th><th>$lt{'del'}</th><th>$lt{'rol'}</th><th>$lt{'ext'}</th><th>$lt{'sta'}</th><th>$lt{'end'}</th> |
<tr><th>$lt{'rev'}</th><th>$lt{'ren'}</th><th>$lt{'del'}</th><th>$lt{'rol'}</th><th>$lt{'ext'}</th><th>$lt{'sta'}</th><th>$lt{'end'}</th> |
END |
END |
|
my (%roletext,%sortrole,%roleclass); |
foreach my $area (sort { my $a1=join('_',(split('_',$a))[1,0]); |
foreach my $area (sort { my $a1=join('_',(split('_',$a))[1,0]); |
my $b1=join('_',(split('_',$b))[1,0]); |
my $b1=join('_',(split('_',$b))[1,0]); |
return $a1 cmp $b1; |
return $a1 cmp $b1; |
} keys(%rolesdump)) { |
} keys(%rolesdump)) { |
next if ($area =~ /^rolesdef/); |
next if ($area =~ /^rolesdef/); |
|
my $envkey=$area; |
my $role = $rolesdump{$area}; |
my $role = $rolesdump{$area}; |
my $thisrole=$area; |
my $thisrole=$area; |
$area =~ s/\_\w\w$//; |
$area =~ s/\_\w\w$//; |
Line 372 END
|
Line 372 END
|
my $bgcol='ffffff'; |
my $bgcol='ffffff'; |
my $allowed=0; |
my $allowed=0; |
my $delallowed=0; |
my $delallowed=0; |
|
my $sortkey=$role_code; |
|
my $class='Unknown'; |
if ($area =~ /^\/(\w+)\/(\d\w+)/ ) { |
if ($area =~ /^\/(\w+)\/(\d\w+)/ ) { |
|
$class='Course'; |
my ($coursedom,$coursedir) = ($1,$2); |
my ($coursedom,$coursedir) = ($1,$2); |
|
$sortkey.="\0$1"; |
# $1.'_'.$2 is the course id (eg. 103_12345abcef103l3). |
# $1.'_'.$2 is the course id (eg. 103_12345abcef103l3). |
my %coursedata= |
my %coursedata= |
&Apache::lonnet::coursedescription($1.'_'.$2); |
&Apache::lonnet::coursedescription($1.'_'.$2); |
my $carea; |
my $carea; |
if (defined($coursedata{'description'})) { |
if (defined($coursedata{'description'})) { |
$carea=&mt('Course').': '.$coursedata{'description'}. |
$carea=$coursedata{'description'}. |
'<br />'.&mt('Domain').': '.$coursedom.(' 'x8). |
'<br />'.&mt('Domain').': '.$coursedom.(' 'x8). |
&Apache::loncommon::syllabuswrapper('Syllabus',$coursedir,$coursedom); |
&Apache::loncommon::syllabuswrapper('Syllabus',$coursedir,$coursedom); |
|
$sortkey.="\0".$coursedata{'description'}; |
} else { |
} else { |
$carea=&mt('Unavailable course').': '.$area; |
$carea=&mt('Unavailable course').': '.$area; |
|
$sortkey.="\0".&mt('Unavailable course'); |
} |
} |
$inccourses{$1.'_'.$2}=1; |
$inccourses{$1.'_'.$2}=1; |
if ((&Apache::lonnet::allowed('c'.$role_code,$1.'/'.$2)) || |
if ((&Apache::lonnet::allowed('c'.$role_code,$1.'/'.$2)) || |
Line 410 END
|
Line 416 END
|
} |
} |
$area=$carea; |
$area=$carea; |
} else { |
} else { |
|
$sortkey.="\0".$area; |
# Determine if current user is able to revoke privileges |
# Determine if current user is able to revoke privileges |
if ($area=~ /^\/(\w+)\//) { |
if ($area=~ /^\/(\w+)\//) { |
if ((&Apache::lonnet::allowed('c'.$role_code,$1)) || |
if ((&Apache::lonnet::allowed('c'.$role_code,$1)) || |
Line 426 END
|
Line 433 END
|
$allowed=1; |
$allowed=1; |
} |
} |
} |
} |
|
if ($role_code eq 'ca' || $role_code eq 'au') { |
|
$class='Construction Space'; |
|
} elsif ($role_code eq 'su') { |
|
$class='System'; |
|
} else { |
|
$class='Domain'; |
|
} |
} |
} |
if ($role_code eq 'ca') { |
if ($role_code eq 'ca') { |
$area=~/\/(\w+)\/(\w+)/; |
$area=~/\/(\w+)\/(\w+)/; |
Line 435 END
|
Line 449 END
|
$allowed=0; |
$allowed=0; |
} |
} |
} |
} |
|
$bgcol='77FF77'; |
my $row = ''; |
my $row = ''; |
$row.='<tr bgcolor="#'.$bgcol.'"><td>'; |
$row.='<tr bgcolor="#'.$bgcol.'"><td>'; |
my $active=1; |
my $active=1; |
Line 449 END
|
Line 464 END
|
} |
} |
} |
} |
$row.='</td><td>'; |
$row.='</td><td>'; |
|
if ($allowed && !$active) { |
|
$row.= '<input type="checkbox" name="ren:'.$thisrole.'">'; |
|
} else { |
|
$row.=' '; |
|
} |
|
$row.='</td><td>'; |
if ($delallowed) { |
if ($delallowed) { |
$row.= '<input type="checkbox" name="del:'.$thisrole.'">'; |
$row.= '<input type="checkbox" name="del:'.$thisrole.'">'; |
} else { |
} else { |
Line 468 END
|
Line 489 END
|
'</td><td>'.($role_end_time ?localtime($role_end_time) |
'</td><td>'.($role_end_time ?localtime($role_end_time) |
: ' ' ) |
: ' ' ) |
."</td></tr>\n"; |
."</td></tr>\n"; |
$r->print($row); |
$sortrole{$sortkey}=$envkey; |
|
$roletext{$envkey}=$row; |
|
$roleclass{$envkey}=$class; |
|
#$r->print($row); |
} # end of foreach (table building loop) |
} # end of foreach (table building loop) |
|
foreach my $type ('Construction Space','Course','Domain','System','Unknown') { |
|
my $output; |
|
foreach my $which (sort {uc($a) cmp uc($b)} (keys(%sortrole))) { |
|
if ($roleclass{$sortrole{$which}} =~ /^\Q$type\E/) { |
|
$output.=$roletext{$sortrole{$which}}; |
|
} |
|
} |
|
if (defined($output)) { |
|
$r->print("<tr bgcolor='#BBffBB'>". |
|
"<td align='center' colspan='7'>".&mt($type)."</td>"); |
|
} |
|
$r->print($output); |
|
} |
$r->print('</table>'); |
$r->print('</table>'); |
} # End of unless |
} # End of unless |
my $currentauth=&Apache::lonnet::queryauthenticate($ccuname,$ccdomain); |
my $currentauth=&Apache::lonnet::queryauthenticate($ccuname,$ccdomain); |
Line 586 ENDOTHERAUTHS
|
Line 623 ENDOTHERAUTHS
|
'rol' => "Role", |
'rol' => "Role", |
'ext' => "Extent", |
'ext' => "Extent", |
'sta' => "Start", |
'sta' => "Start", |
'end' => "End". |
'end' => "End", |
'cau' => "Co-Author", |
'cau' => "Co-Author", |
'ssd' => "Set Start Date", |
'ssd' => "Set Start Date", |
'sed' => "Set End Date" |
'sed' => "Set End Date" |
Line 596 ENDOTHERAUTHS
|
Line 633 ENDOTHERAUTHS
|
<table border=2><tr><th>$lt{'act'}</th><th>$lt{'rol'}</th><th>$lt{'ext'}</th> |
<table border=2><tr><th>$lt{'act'}</th><th>$lt{'rol'}</th><th>$lt{'ext'}</th> |
<th>$lt{'sta'}</th><th>$lt{'end'}</th></tr> |
<th>$lt{'sta'}</th><th>$lt{'end'}</th></tr> |
<tr> |
<tr> |
<td><input type=checkbox name="act_$cudom\_$cuname\_ca"></td> |
<td><input type=checkbox name="act_$cudom\_$cuname\_ca" /></td> |
<td>$lt{'cau'}</td> |
<td>$lt{'cau'}</td> |
<td>$cudom\_$cuname</td> |
<td>$cudom\_$cuname</td> |
<td><input type=hidden name="start_$cudom\_$cuname\_ca" value=''> |
<td><input type=hidden name="start_$cudom\_$cuname\_ca" value='' /> |
<a href= |
<a href= |
"javascript:pjump('date_start','Start Date Co-Author',document.cu.start_$cudom\_$cuname\_ca.value,'start_$cudom\_$cuname\_ca','cu.pres','dateset')">$lt{'ssd'}</a></td> |
"javascript:pjump('date_start','Start Date Co-Author',document.cu.start_$cudom\_$cuname\_ca.value,'start_$cudom\_$cuname\_ca','cu.pres','dateset')">$lt{'ssd'}</a></td> |
<td><input type=hidden name="end_$cudom\_$cuname\_ca" value=''> |
<td><input type=hidden name="end_$cudom\_$cuname\_ca" value='' /> |
<a href= |
<a href= |
"javascript:pjump('date_end','End Date Co-Author',document.cu.end_$cudom\_$cuname\_ca.value,'end_$cudom\_$cuname\_ca','cu.pres','dateset')">$lt{'sed'}</a></td> |
"javascript:pjump('date_end','End Date Co-Author',document.cu.end_$cudom\_$cuname\_ca.value,'end_$cudom\_$cuname\_ca','cu.pres','dateset')">$lt{'sed'}</a></td> |
</tr> |
</tr> |
Line 924 END
|
Line 961 END
|
$ENV{'course.'.$cid.'.home'}).'</b><br>'); |
$ENV{'course.'.$cid.'.home'}).'</b><br>'); |
} |
} |
} |
} |
|
} elsif ($_=~/^form\.ren/) { |
|
if ($_=~/^form\.ren\:([^\_]+)\_([^\_]+)$/) { |
|
my $result=&Apache::lonnet::assignrole($ENV{'form.ccdomain'}, |
|
$ENV{'form.ccuname'},$1,$2,0,$now); |
|
$r->print(&mt('Re-Enabling [_1] in [_2]: [_3]', |
|
$2,$1,$result).'<br />'); |
|
if ($2 eq 'st') { |
|
$1=~/^\/(\w+)\/(\w+)/; |
|
my $cid=$1.'_'.$2; |
|
$r->print(&mt('Add to classlist').': <b>'. |
|
&Apache::lonnet::critical( |
|
'put:'.$ENV{'course.'.$cid.'.domain'}.':'. |
|
$ENV{'course.'.$cid.'.num'}.':classlist:'. |
|
&Apache::lonnet::escape( |
|
$ENV{'form.ccuname'}.':'. |
|
$ENV{'form.ccdomain'} ).'='. |
|
&Apache::lonnet::escape(':'.$now), |
|
$ENV{'course.'.$cid.'.home'}) |
|
.'</b><br>'); |
|
} |
|
} |
} elsif ($_=~/^form\.act/) { |
} elsif ($_=~/^form\.act/) { |
if |
if ($_=~/^form\.act\_([^\_]+)\_([^\_]+)\_cr_cr_([^\_]+)_(\w+)_([^\_]+)$/) { |
($_=~/^form\.act\_([^\_]+)\_([^\_]+)\_cr_cr_([^\_]+)_(\w+)_([^\_]+)$/) { |
|
# Activate a custom role |
# Activate a custom role |
my $url='/'.$1.'/'.$2; |
my ($one,$two,$three,$four,$five)=($1,$2,$3,$4,$5); |
my $full=$1.'_'.$2.'_cr_cr_'.$3.'_'.$4.'_'.$5; |
my $url='/'.$one.'/'.$two; |
|
my $full=$one.'_'.$two.'_cr_cr_'.$three.'_'.$four.'_'.$five; |
|
$ENV{'form.sec_'.$full}=~s/\W//g; |
if ($ENV{'form.sec_'.$full}) { |
if ($ENV{'form.sec_'.$full}) { |
$url.='/'.$ENV{'form.sec_'.$full}; |
$url.='/'.$ENV{'form.sec_'.$full}; |
} |
} |
Line 941 END
|
Line 1000 END
|
$ENV{'form.end_'.$full} : |
$ENV{'form.end_'.$full} : |
0 ); |
0 ); |
|
|
$r->print(&mt('Assigning custom role').' "'.$5.'" by '.$4.'@'.$3.' in '.$url. |
$r->print(&mt('Assigning custom role').' "'.$five.'" by '.$four.'@'.$three.' in '.$url. |
($start?', '.&mt('starting').' '.localtime($start):''). |
($start?', '.&mt('starting').' '.localtime($start):''). |
($end?', ending '.localtime($end):'').': <b>'. |
($end?', ending '.localtime($end):'').': <b>'. |
&Apache::lonnet::assigncustomrole( |
&Apache::lonnet::assigncustomrole( |
$ENV{'form.ccdomain'},$ENV{'form.ccuname'},$url,$3,$4,$5,$end,$start). |
$ENV{'form.ccdomain'},$ENV{'form.ccuname'},$url,$three,$four,$five,$end,$start). |
'</b><br>'); |
'</b><br>'); |
} elsif ($_=~/^form\.act\_([^\_]+)\_([^\_]+)\_([^\_]+)$/) { |
} elsif ($_=~/^form\.act\_([^\_]+)\_([^\_]+)\_([^\_]+)$/) { |
# Activate roles for sections with 3 id numbers |
# Activate roles for sections with 3 id numbers |
# set start, end times, and the url for the class |
# set start, end times, and the url for the class |
|
my ($one,$two,$three)=($1,$2,$3); |
my $start = ( $ENV{'form.start_'.$1.'_'.$2.'_'.$3} ? |
my $start = ( $ENV{'form.start_'.$one.'_'.$two.'_'.$three} ? |
$ENV{'form.start_'.$1.'_'.$2.'_'.$3} : |
$ENV{'form.start_'.$one.'_'.$two.'_'.$three} : |
$now ); |
$now ); |
my $end = ( $ENV{'form.end_'.$1.'_'.$2.'_'.$3} ? |
my $end = ( $ENV{'form.end_'.$one.'_'.$two.'_'.$three} ? |
$ENV{'form.end_'.$1.'_'.$2.'_'.$3} : |
$ENV{'form.end_'.$one.'_'.$two.'_'.$three} : |
0 ); |
0 ); |
my $url='/'.$1.'/'.$2; |
my $url='/'.$one.'/'.$two; |
if ($ENV{'form.sec_'.$1.'_'.$2.'_'.$3}) { |
$ENV{'form.sec_'.$one.'_'.$two.'_'.$three}=~s/\W//g; |
$url.='/'.$ENV{'form.sec_'.$1.'_'.$2.'_'.$3}; |
if ($ENV{'form.sec_'.$one.'_'.$two.'_'.$three}) { |
|
$url.='/'.$ENV{'form.sec_'.$one.'_'.$two.'_'.$three}; |
} |
} |
# Assign the role and report it |
# Assign the role and report it |
$r->print(&mt('Assigning').' '.$3.' in '.$url. |
$r->print(&mt('Assigning').' '.$three.' in '.$url. |
($start?', '.&mt('starting').' '.localtime($start):''). |
($start?', '.&mt('starting').' '.localtime($start):''). |
($end?', '.&mt('ending').' '.localtime($end):'').': <b>'. |
($end?', '.&mt('ending').' '.localtime($end):'').': <b>'. |
&Apache::lonnet::assignrole( |
&Apache::lonnet::assignrole( |
$ENV{'form.ccdomain'},$ENV{'form.ccuname'}, |
$ENV{'form.ccdomain'},$ENV{'form.ccuname'}, |
$url,$3,$end,$start). |
$url,$three,$end,$start). |
'</b><br>'); |
'</b><br>'); |
# Handle students differently |
# Handle students differently |
if ($3 eq 'st') { |
if ($three eq 'st') { |
$url=~/^\/(\w+)\/(\w+)/; |
$url=~/^\/(\w+)\/(\w+)/; |
my $cid=$1.'_'.$2; |
my $cid=$one.'_'.$two; |
$r->print(&mt('Add to classlist').': <b>'. |
$r->print(&mt('Add to classlist').': <b>'. |
&Apache::lonnet::critical( |
&Apache::lonnet::critical( |
'put:'.$ENV{'course.'.$cid.'.domain'}.':'. |
'put:'.$ENV{'course.'.$cid.'.domain'}.':'. |
Line 1236 sub course_level_table {
|
Line 1296 sub course_level_table {
|
my $bgcol=$thiscourse; |
my $bgcol=$thiscourse; |
$bgcol=~s/[^7-9a-e]//g; |
$bgcol=~s/[^7-9a-e]//g; |
$bgcol=substr($bgcol.$bgcol.$bgcol.'ffffff',2,6); |
$bgcol=substr($bgcol.$bgcol.$bgcol.'ffffff',2,6); |
|
my ($domain)=split(/\//,$thiscourse); |
foreach ('st','ta','ep','ad','in','cc') { |
foreach ('st','ta','ep','ad','in','cc') { |
if (&Apache::lonnet::allowed('c'.$_,$thiscourse)) { |
if (&Apache::lonnet::allowed('c'.$_,$thiscourse)) { |
my $plrole=&Apache::lonnet::plaintext($_); |
my $plrole=&Apache::lonnet::plaintext($_); |
Line 1243 sub course_level_table {
|
Line 1304 sub course_level_table {
|
<tr bgcolor="#$bgcol"> |
<tr bgcolor="#$bgcol"> |
<td><input type="checkbox" name="act_$protectedcourse\_$_"></td> |
<td><input type="checkbox" name="act_$protectedcourse\_$_"></td> |
<td>$plrole</td> |
<td>$plrole</td> |
<td>$area</td> |
<td>$area<br />Domain: $domain</td> |
ENDEXTENT |
ENDEXTENT |
if ($_ ne 'cc') { |
if ($_ ne 'cc') { |
$table .= <<ENDSECTION; |
$table .= <<ENDSECTION; |