version 1.216, 2009/02/09 04:14:03
|
version 1.225, 2009/05/22 17:57:03
|
Line 167 sub redirect_user {
|
Line 167 sub redirect_user {
|
$r->print(<<ENDREDIR); |
$r->print(<<ENDREDIR); |
$start_page |
$start_page |
<script type="text/javascript"> |
<script type="text/javascript"> |
|
// <![CDATA[ |
$swinfo |
$swinfo |
|
// ]]> |
</script> |
</script> |
$navwindow |
$navwindow |
<h1>$msg</h1> |
<p>$msg</p> |
$end_page |
$end_page |
ENDREDIR |
ENDREDIR |
return; |
return; |
Line 183 sub error_page {
|
Line 185 sub error_page {
|
$r->send_http_header; |
$r->send_http_header; |
return OK if $r->header_only; |
return OK if $r->header_only; |
$r->print(&Apache::loncommon::start_page('Problems during Course Initialization'). |
$r->print(&Apache::loncommon::start_page('Problems during Course Initialization'). |
'<script type="text/javascript">'. |
'<script type="text/javascript">'. |
&Apache::lonmenu::rawconfig().'</script>'. |
'// <![CDATA['. |
'<p>'.&mt('The following problems occurred:'). |
&Apache::lonmenu::rawconfig(). |
|
'// ]]>'. |
|
'</script>'. |
|
'<p class="LC_error">'.&mt('The following problems occurred:'). |
$error. |
$error. |
'</p><br /><a href="'.$dest.'">'.&mt('Continue').'</a>'. |
'</p><br /><a href="'.$dest.'">'.&mt('Continue').'</a>'. |
&Apache::loncommon::end_page()); |
&Apache::loncommon::end_page()); |
Line 236 sub handler {
|
Line 241 sub handler {
|
if (my ($domain,$coursenum) = |
if (my ($domain,$coursenum) = |
($envkey =~ m-^form\.cc\./($match_domain)/($match_courseid)$-)) { |
($envkey =~ m-^form\.cc\./($match_domain)/($match_courseid)$-)) { |
if ($dcroles{$domain}) { |
if ($dcroles{$domain}) { |
&check_privs($domain,$coursenum,$then,$now,'cc'); |
&Apache::lonnet::check_adhoc_privs($domain,$coursenum, |
|
$then,$now,'cc'); |
} |
} |
last; |
last; |
} |
} |
Line 276 sub handler {
|
Line 282 sub handler {
|
if ($dcroles{$domain}) { |
if ($dcroles{$domain}) { |
my ($server_status,$home) = &check_author_homeserver($user,$domain); |
my ($server_status,$home) = &check_author_homeserver($user,$domain); |
if (($server_status eq 'ok') || ($server_status eq 'switchserver')) { |
if (($server_status eq 'ok') || ($server_status eq 'switchserver')) { |
&check_privs($domain,$user,$then,$now,'ca'); |
&Apache::lonnet::check_adhoc_privs($domain,$user,$then, |
|
$now,'ca'); |
if ($server_status eq 'switchserver') { |
if ($server_status eq 'switchserver') { |
my $trolecode = 'ca./'.$domain.'/'.$user; |
my $trolecode = 'ca./'.$domain.'/'.$user; |
my $switchserver = '/adm/switchserver?' |
my $switchserver = '/adm/switchserver?' |
Line 297 sub handler {
|
Line 304 sub handler {
|
foreach $envkey (keys %env) { |
foreach $envkey (keys %env) { |
next if ($envkey!~/^user\.role\./); |
next if ($envkey!~/^user\.role\./); |
my ($where,$trolecode,$role,$tstatus,$tend,$tstart); |
my ($where,$trolecode,$role,$tstatus,$tend,$tstart); |
&role_status($envkey,$then,$now,\$role,\$where,\$trolecode,\$tstatus,\$tstart,\$tend); |
&Apache::lonnet::role_status($envkey,$then,$now,\$role,\$where, |
|
\$trolecode,\$tstatus,\$tstart,\$tend); |
if ($env{'form.'.$trolecode}) { |
if ($env{'form.'.$trolecode}) { |
if ($tstatus eq 'is') { |
if ($tstatus eq 'is') { |
$where=~s/^\///; |
$where=~s/^\///; |
Line 364 sub handler {
|
Line 372 sub handler {
|
$r->print(<<ENDENTEREDKEY); |
$r->print(<<ENDENTEREDKEY); |
$start_page |
$start_page |
<script type="text/javascript"> |
<script type="text/javascript"> |
|
// <![CDATA[ |
$swinfo |
$swinfo |
|
// ]]> |
</script> |
</script> |
<form method="post"> |
<form action="" method="post"> |
<input type="hidden" name="selectrole" value="1" /> |
<input type="hidden" name="selectrole" value="1" /> |
<input type="hidden" name="$trolecode" value="1" /> |
<input type="hidden" name="$trolecode" value="1" /> |
<span class="LC_fontsize_large">$message</span><br /> |
<span class="LC_fontsize_large">$message</span><br /> |
Line 387 ENDENTEREDKEY
|
Line 397 ENDENTEREDKEY
|
$r->print(<<ENDENTERKEY); |
$r->print(<<ENDENTERKEY); |
$start_page |
$start_page |
<script type="text/javascript"> |
<script type="text/javascript"> |
|
// <![CDATA[ |
$swinfo |
$swinfo |
|
// ]]> |
</script> |
</script> |
<form method="post"> |
<form action="" method="post"> |
<input type="hidden" name="selectrole" value="1" /> |
<input type="hidden" name="selectrole" value="1" /> |
<input type="hidden" name="$trolecode" value="1" /> |
<input type="hidden" name="$trolecode" value="1" /> |
<input type="text" size="20" name="newkey" value="$env{'form.newkey'}" /> |
<input type="text" size="20" name="newkey" value="$env{'form.newkey'}" /> |
Line 420 ENDENTERKEY
|
Line 432 ENDENTERKEY
|
if (($env{'form.orgurl'}) && |
if (($env{'form.orgurl'}) && |
($env{'form.orgurl'}!~/^\/adm\/flip/)) { |
($env{'form.orgurl'}!~/^\/adm\/flip/)) { |
my $dest=$env{'form.orgurl'}; |
my $dest=$env{'form.orgurl'}; |
|
if ($env{'form.symb'}) { |
|
if ($dest =~ /\?/) { |
|
$dest .= '&'; |
|
} else { |
|
$dest .= '?' |
|
} |
|
$dest .= 'symb='.$env{'form.symb'}; |
|
} |
if (&Apache::lonnet::allowed('adv') eq 'F') { $tadv=1; } |
if (&Apache::lonnet::allowed('adv') eq 'F') { $tadv=1; } |
&Apache::lonnet::appenv({'request.role.adv'=>$tadv}); |
&Apache::lonnet::appenv({'request.role.adv'=>$tadv}); |
if (($ferr) && ($tadv)) { |
if (($ferr) && ($tadv)) { |
Line 433 ENDENTERKEY
|
Line 453 ENDENTERKEY
|
&Apache::lonnet::appenv( |
&Apache::lonnet::appenv( |
{"request.course.id" => $cdom.'_'.$cnum}); |
{"request.course.id" => $cdom.'_'.$cnum}); |
$furl='/adm/roles?tryagain=1'; |
$furl='/adm/roles?tryagain=1'; |
$msg= |
$msg='<p><span class="LC_error">' |
'<h1><span class="LC_error">'. |
.&mt('Could not initialize [_1] at this time.', |
&mt('Could not initialize [_1] at this time.', |
$env{'course.'.$cdom.'_'.$cnum.'.description'}) |
$env{'course.'.$cdom.'_'.$cnum.'.description'}). |
.'</span></p>' |
'</span></h1><h3>'.&mt('Please try again.').'</h3>'.$ferr; |
.'<p>'.&mt('Please try again.').'</p>' |
|
.'<p>'.$ferr.'</p>'; |
} |
} |
if (&Apache::lonnet::allowed('adv') eq 'F') { $tadv=1; } |
if (&Apache::lonnet::allowed('adv') eq 'F') { $tadv=1; } |
&Apache::lonnet::appenv({'request.role.adv'=>$tadv}); |
&Apache::lonnet::appenv({'request.role.adv'=>$tadv}); |
Line 522 ENDENTERKEY
|
Line 543 ENDENTERKEY
|
$redirect_url); |
$redirect_url); |
return OK; |
return OK; |
} |
} |
|
if ($role eq 'sc') { |
|
my $redirect_url = '/adm/grades?command=scantronupload'; |
|
&redirect_user($r,&mt('Loading Data Upload Page'), |
|
$redirect_url); |
|
return OK; |
|
} |
} |
} |
} |
} |
} |
} |
Line 535 ENDENTERKEY
|
Line 562 ENDENTERKEY
|
$r->send_http_header; |
$r->send_http_header; |
return OK if $r->header_only; |
return OK if $r->header_only; |
|
|
my $brcrum =[{href=>"/admm/roles",text=>"User Roles"}]; |
my $crumbtext = 'User Roles'; |
|
my $pagetitle = 'My Roles'; |
|
my $recent = &mt('Recent Roles'); |
|
my $show_course=&Apache::loncommon::show_course(); |
|
if ($show_course) { |
|
$crumbtext = 'Courses'; |
|
$pagetitle = 'My Courses'; |
|
$recent = &mt('Recent Courses'); |
|
} |
|
my $brcrum =[{href=>"/adm/roles",text=>$crumbtext}]; |
my $swinfo=&Apache::lonmenu::rawconfig(); |
my $swinfo=&Apache::lonmenu::rawconfig(); |
my $start_page=&Apache::loncommon::start_page('User Roles',undef,{bread_crumbs=>$brcrum}); |
my $start_page=&Apache::loncommon::start_page($pagetitle,undef,{bread_crumbs=>$brcrum}); |
my $standby=&mt('Role selected. Please stand by.'); |
my $standby=&mt('Role selected. Please stand by.'); |
$standby=~s/\n/\\n/g; |
$standby=~s/\n/\\n/g; |
my $noscript='<span class="LC_error">'.&mt('Use of LON-CAPA requires Javascript to be enabled in your web browser.').'<br />'.&mt('As this is not the case, most functionality in the system will be unavailable.').'</span><br />'; |
my $noscript='<span class="LC_error">'.&mt('Use of LON-CAPA requires Javascript to be enabled in your web browser.').'<br />'.&mt('As this is not the case, most functionality in the system will be unavailable.').'</span><br />'; |
Line 549 $start_page
|
Line 585 $start_page
|
$noscript |
$noscript |
</noscript> |
</noscript> |
<script type="text/javascript"> |
<script type="text/javascript"> |
|
// <![CDATA[ |
$swinfo |
$swinfo |
window.focus(); |
window.focus(); |
|
|
Line 565 function enterrole (thisform,rolecode,bu
|
Line 602 function enterrole (thisform,rolecode,bu
|
alert('$standby'); |
alert('$standby'); |
} |
} |
} |
} |
|
// ]]> |
</script> |
</script> |
ENDHEADER |
ENDHEADER |
|
|
Line 650 ENDHEADER
|
Line 688 ENDHEADER
|
foreach $envkey (sort keys %env) { |
foreach $envkey (sort keys %env) { |
my $button = 1; |
my $button = 1; |
my $switchserver=''; |
my $switchserver=''; |
my $roletext; |
my ($roletext,$roletext_end); |
my $sortkey; |
my $sortkey; |
if ($envkey=~/^user\.role\./) { |
if ($envkey=~/^user\.role\./) { |
my ($role,$where,$trolecode,$tstart,$tend,$tremark,$tstatus,$tpstart,$tpend); |
my ($role,$where,$trolecode,$tstart,$tend,$tremark,$tstatus,$tpstart,$tpend); |
&role_status($envkey,$then,$now,\$role,\$where,\$trolecode,\$tstatus,\$tstart,\$tend); |
&Apache::lonnet::role_status($envkey,$then,$now,\$role,\$where, |
|
\$trolecode,\$tstatus,\$tstart,\$tend); |
next if (!defined($role) || $role eq '' || $role =~ /^gr/); |
next if (!defined($role) || $role eq '' || $role =~ /^gr/); |
my $timezone = &role_timezone($where,\%timezones); |
my $timezone = &role_timezone($where,\%timezones); |
$tremark=''; |
$tremark=''; |
Line 793 ENDHEADER
|
Line 832 ENDHEADER
|
$twhere=&mt('system wide'); |
$twhere=&mt('system wide'); |
$sortkey=$role.$twhere; |
$sortkey=$role.$twhere; |
} |
} |
$roletext.=&build_roletext($trolecode,$tdom,$trest,$tstatus,$tryagain,$advanced,$tremark,$tbg,$trole,$twhere,$tpstart,$tpend,$nochoose,$button,$switchserver,$reinit); |
($roletext,$roletext_end) = |
$roletext{$envkey}=$roletext; |
&build_roletext($trolecode,$tdom,$trest,$tstatus,$tryagain, |
|
$advanced,$tremark,$tbg,$trole,$twhere,$tpstart, |
|
$tpend,$nochoose,$button,$switchserver,$reinit); |
|
$roletext{$envkey}=[$roletext,$roletext_end]; |
if (!$sortkey) {$sortkey=$twhere."\0".$envkey;} |
if (!$sortkey) {$sortkey=$twhere."\0".$envkey;} |
$sortrole{$sortkey}=$envkey; |
$sortrole{$sortkey}=$envkey; |
$roleclass{$envkey}=$ttype; |
$roleclass{$envkey}=$ttype; |
Line 853 ENDHEADER
|
Line 895 ENDHEADER
|
return OK; |
return OK; |
} |
} |
# ----------------------------------------------------------------------- Table |
# ----------------------------------------------------------------------- Table |
unless ((!&Apache::lonmenu::show_course()) || ($nochoose) || ($countactive==1)) { |
unless ((!&Apache::loncommon::show_course()) || ($nochoose) || ($countactive==1)) { |
$r->print("<h2>".&mt('Select a Course to Enter')."</h2>\n"); |
$r->print("<h2>".&mt('Select a Course to Enter')."</h2>\n"); |
} |
} |
my $doheaders = &roletable_headers($r,\%roleclass,\%sortrole,$nochoose); |
my $doheaders = &roletable_headers($r,\%roleclass,\%sortrole,$nochoose); |
Line 862 ENDHEADER
|
Line 904 ENDHEADER
|
&Apache::lonhtmlcommon::get_recent('roles',$env{'environment.recentrolesn'}); |
&Apache::lonhtmlcommon::get_recent('roles',$env{'environment.recentrolesn'}); |
my $output=''; |
my $output=''; |
foreach (sort(keys(%recent_roles))) { |
foreach (sort(keys(%recent_roles))) { |
if (defined($roletext{'user.role.'.$_})) { |
if (ref($roletext{'user.role.'.$_}) eq 'ARRAY') { |
$output.=$roletext{'user.role.'.$_}; |
$output.= &Apache::loncommon::start_data_table_row(). |
|
$roletext{'user.role.'.$_}->[0]. |
|
&Apache::loncommon::end_data_table_row(). |
|
&Apache::loncommon::continue_data_table_row(). |
|
$roletext{'user.role.'.$_}->[1]. |
|
&Apache::loncommon::end_data_table_row(); |
if ($_ =~ m-dc\./($match_domain)/- |
if ($_ =~ m-dc\./($match_domain)/- |
&& $dcroles{$1}) { |
&& $dcroles{$1}) { |
$output .= &adhoc_roles_row($1,'recent'); |
$output .= &adhoc_roles_row($1,'recent'); |
Line 877 ENDHEADER
|
Line 924 ENDHEADER
|
if ($output) { |
if ($output) { |
$r->print(&Apache::loncommon::start_data_table_empty_row() |
$r->print(&Apache::loncommon::start_data_table_empty_row() |
.'<td align="center" colspan="5">' |
.'<td align="center" colspan="5">' |
.&mt('Recent Roles') |
.$recent |
.'</td>' |
.'</td>' |
.&Apache::loncommon::end_data_table_empty_row() |
.&Apache::loncommon::end_data_table_empty_row() |
); |
); |
Line 935 ENDHEADER
|
Line 982 ENDHEADER
|
.'<a href="/adm/logout">'.&mt('Logout').'</a> ' |
.'<a href="/adm/logout">'.&mt('Logout').'</a> ' |
.'<a href="/adm/coursecatalog?showdom='.$esc_dom.'">' |
.'<a href="/adm/coursecatalog?showdom='.$esc_dom.'">' |
.&mt('Course Catalog') |
.&mt('Course Catalog') |
.'</small></p>'); |
.'</a></small></p>'); |
} |
} |
$r->print(&Apache::loncommon::end_page()); |
$r->print(&Apache::loncommon::end_page()); |
return OK; |
return OK; |
Line 1035 sub print_rolerows {
|
Line 1082 sub print_rolerows {
|
foreach my $which (sort {uc($a) cmp uc($b)} (keys(%{$sortrole}))) { |
foreach my $which (sort {uc($a) cmp uc($b)} (keys(%{$sortrole}))) { |
if ($roleclass->{$sortrole->{$which}} =~ /^\Q$type\E/) { |
if ($roleclass->{$sortrole->{$which}} =~ /^\Q$type\E/) { |
if (ref($roletext) eq 'HASH') { |
if (ref($roletext) eq 'HASH') { |
$output.=$roletext->{$sortrole->{$which}}; |
if (ref($roletext->{$sortrole->{$which}}) eq 'ARRAY') { |
|
$output.= &Apache::loncommon::start_data_table_row(). |
|
$roletext->{$sortrole->{$which}}->[0]. |
|
&Apache::loncommon::end_data_table_row(). |
|
&Apache::loncommon::continue_data_table_row(). |
|
$roletext->{$sortrole->{$which}}->[1]. |
|
&Apache::loncommon::end_data_table_row(); |
|
} |
if ($sortrole->{$which} =~ m-dc\./($match_domain)/-) { |
if ($sortrole->{$which} =~ m-dc\./($match_domain)/-) { |
if (ref($dcroles) eq 'HASH') { |
if (ref($dcroles) eq 'HASH') { |
if ($dcroles->{$1}) { |
if ($dcroles->{$1}) { |
Line 1181 sub privileges_info {
|
Line 1235 sub privileges_info {
|
return $output; |
return $output; |
} |
} |
|
|
sub role_status { |
|
my ($rolekey,$then,$now,$role,$where,$trolecode,$tstatus,$tstart,$tend) = @_; |
|
my @pwhere = (); |
|
if (exists($env{$rolekey}) && $env{$rolekey} ne '') { |
|
(undef,undef,$$role,@pwhere)=split(/\./,$rolekey); |
|
unless (!defined($$role) || $$role eq '') { |
|
$$where=join('.',@pwhere); |
|
$$trolecode=$$role.'.'.$$where; |
|
($$tstart,$$tend)=split(/\./,$env{$rolekey}); |
|
$$tstatus='is'; |
|
if ($$tstart && $$tstart>$then) { |
|
$$tstatus='future'; |
|
if ($$tstart<$now) { $$tstatus='will'; } |
|
} |
|
if ($$tend) { |
|
if ($$tend<$then) { |
|
$$tstatus='expired'; |
|
} elsif ($$tend<$now) { |
|
$$tstatus='will_not'; |
|
} |
|
} |
|
} |
|
} |
|
} |
|
|
|
sub build_roletext { |
sub build_roletext { |
my ($trolecode,$tdom,$trest,$tstatus,$tryagain,$advanced,$tremark,$tbg,$trole,$twhere,$tpstart,$tpend,$nochoose,$button,$switchserver,$reinit) = @_; |
my ($trolecode,$tdom,$trest,$tstatus,$tryagain,$advanced,$tremark,$tbg,$trole,$twhere,$tpstart,$tpend,$nochoose,$button,$switchserver,$reinit) = @_; |
my $roletext=&Apache::loncommon::start_data_table_row(); |
my ($roletext,$roletext_end); |
my $is_dc=($trolecode =~ m/^dc\./); |
my $is_dc=($trolecode =~ m/^dc\./); |
my $rowspan=($is_dc) ? '' |
my $rowspan=($is_dc) ? '' |
: ' rowspan="2" '; |
: ' rowspan="2" '; |
Line 1228 sub build_roletext {
|
Line 1257 sub build_roletext {
|
} elsif ($tstatus eq 'is') { |
} elsif ($tstatus eq 'is') { |
$roletext.='<td'.$rowspan.' class="'.$tbg.'">'. |
$roletext.='<td'.$rowspan.' class="'.$tbg.'">'. |
'<input name="'.$buttonname.'" type="button" value="'. |
'<input name="'.$buttonname.'" type="button" value="'. |
&mt('Select').'" onClick="javascript:enterrole(this.form,\''. |
&mt('Select').'" onclick="javascript:enterrole(this.form,\''. |
$trolecode."','".$buttonname.'\');" /></td>'; |
$trolecode."','".$buttonname.'\');" /></td>'; |
} elsif ($tryagain) { |
} elsif ($tryagain) { |
$roletext.= |
$roletext.= |
'<td'.$rowspan.' class="'.$tbg.'">'. |
'<td'.$rowspan.' class="'.$tbg.'">'. |
'<input name="'.$buttonname.'" type="button" value="'. |
'<input name="'.$buttonname.'" type="button" value="'. |
&mt('Try Selecting Again').'" onClick="javascript:enterrole(this.form,\''. |
&mt('Try Selecting Again').'" onclick="javascript:enterrole(this.form,\''. |
$trolecode."','".$buttonname.'\');" /></td>'; |
$trolecode."','".$buttonname.'\');" /></td>'; |
} elsif ($advanced) { |
} elsif ($advanced) { |
$roletext.= |
$roletext.= |
'<td'.$rowspan.' class="'.$tbg.'">'. |
'<td'.$rowspan.' class="'.$tbg.'">'. |
'<input name="'.$buttonname.'" type="button" value="'. |
'<input name="'.$buttonname.'" type="button" value="'. |
&mt('Re-Initialize').'" onClick="javascript:enterrole(this.form,\''. |
&mt('Re-Initialize').'" onclick="javascript:enterrole(this.form,\''. |
$trolecode."','".$buttonname.'\');" /></td>'; |
$trolecode."','".$buttonname.'\');" /></td>'; |
} elsif ($reinit) { |
} elsif ($reinit) { |
$roletext.= |
$roletext.= |
'<td'.$rowspan.' class="'.$tbg.'">'. |
'<td'.$rowspan.' class="'.$tbg.'">'. |
'<input name="'.$buttonname.'" type="button" value="'. |
'<input name="'.$buttonname.'" type="button" value="'. |
&mt('Re-Select').'" onClick="javascript:enterrole(this.form,\''. |
&mt('Re-Select').'" onclick="javascript:enterrole(this.form,\''. |
$trolecode."','".$buttonname.'\');" /></td>'; |
$trolecode."','".$buttonname.'\');" /></td>'; |
} else { |
} else { |
$roletext.= |
$roletext.= |
'<td'.$rowspan.' class="'.$tbg.'">'. |
'<td'.$rowspan.' class="'.$tbg.'">'. |
'<input name="'.$buttonname.'" type="button" value="'. |
'<input name="'.$buttonname.'" type="button" value="'. |
&mt('Re-Initialize').'" onClick="javascript:enterrole(this.form,\''. |
&mt('Re-Select').'" onclick="javascript:enterrole(this.form,\''. |
$trolecode."','".$buttonname.'\');" /></td>'; |
$trolecode."','".$buttonname.'\');" /></td>'; |
} |
} |
} |
} |
Line 1263 sub build_roletext {
|
Line 1292 sub build_roletext {
|
$roletext.='<td>'.$trole.'</td>' |
$roletext.='<td>'.$trole.'</td>' |
.'<td>'.$twhere.'</td>' |
.'<td>'.$twhere.'</td>' |
.'<td>'.$tpstart.'</td>' |
.'<td>'.$tpstart.'</td>' |
.'<td>'.$tpend.'</td>' |
.'<td>'.$tpend.'</td>'; |
.&Apache::loncommon::end_data_table_row(); |
|
if (!$is_dc) { |
if (!$is_dc) { |
$roletext.=&Apache::loncommon::continue_data_table_row() |
$roletext_end = '<td colspan="4">'. |
.'<td colspan="4">' |
$tremark.' '. |
.$tremark.' ' |
'</td>'; |
.'</td>' |
|
.&Apache::loncommon::end_data_table_row(); |
|
} |
} |
return $roletext; |
return ($roletext,$roletext_end); |
} |
} |
|
|
sub check_needs_switchserver { |
sub check_needs_switchserver { |
Line 1310 sub check_author_homeserver {
|
Line 1336 sub check_author_homeserver {
|
} |
} |
} |
} |
|
|
sub check_privs { |
|
my ($cdom,$cnum,$then,$now,$checkrole) = @_; |
|
my $cckey = 'user.role.'.$checkrole.'./'.$cdom.'/'.$cnum; |
|
if ($env{$cckey}) { |
|
my ($role,$where,$trolecode,$tstart,$tend,$tremark,$tstatus,$tpstart,$tpend); |
|
&role_status($cckey,$then,$now,\$role,\$where,\$trolecode,\$tstatus,\$tstart,\$tend); |
|
unless (($tstatus eq 'is') || ($tstatus eq 'will_not')) { |
|
&set_privileges($cdom,$cnum,$checkrole); |
|
} |
|
} else { |
|
&set_privileges($cdom,$cnum,$checkrole); |
|
} |
|
} |
|
|
|
sub check_fordc { |
sub check_fordc { |
my ($dcroles,$then) = @_; |
my ($dcroles,$then) = @_; |
my $numdc = 0; |
my $numdc = 0; |
Line 1436 sub coursepick_jscript {
|
Line 1448 sub coursepick_jscript {
|
); |
); |
my $verify_script = <<"END"; |
my $verify_script = <<"END"; |
<script type="text/javascript"> |
<script type="text/javascript"> |
|
// <![CDATA[ |
function verifyCoursePick(caller) { |
function verifyCoursePick(caller) { |
var numbutton = getIndex(caller) |
var numbutton = getIndex(caller) |
var pickedCourse = document.rolechoice.elements[numbutton+4].value |
var pickedCourse = document.rolechoice.elements[numbutton+4].value |
Line 1464 function getIndex(caller) {
|
Line 1477 function getIndex(caller) {
|
} |
} |
return -1; |
return -1; |
} |
} |
|
// ]]> |
</script> |
</script> |
END |
END |
return $verify_script; |
return $verify_script; |
Line 1478 sub coauthorlink {
|
Line 1492 sub coauthorlink {
|
|
|
sub display_cc_role { |
sub display_cc_role { |
my $rolekey = shift; |
my $rolekey = shift; |
my $roletext; |
my ($roletext,$roletext_end); |
my $advanced = $env{'user.adv'}; |
my $advanced = $env{'user.adv'}; |
my $tryagain = $env{'form.tryagain'}; |
my $tryagain = $env{'form.tryagain'}; |
unless ($rolekey =~/^error\:/) { |
unless ($rolekey =~/^error\:/) { |
Line 1501 sub display_cc_role {
|
Line 1515 sub display_cc_role {
|
} |
} |
my $trole = &Apache::lonnet::plaintext('cc',$ttype); |
my $trole = &Apache::lonnet::plaintext('cc',$ttype); |
$twhere.="<br />".&mt('Domain').":".$1; |
$twhere.="<br />".&mt('Domain').":".$1; |
$roletext = &build_roletext($trolecode,$1,$2,'is',$tryagain,$advanced,'',$tbg,$trole,$twhere,'','','',1,''); |
($roletext,$roletext_end) = &build_roletext($trolecode,$1,$2,'is',$tryagain,$advanced,'',$tbg,$trole,$twhere,'','','',1,''); |
} |
} |
} |
} |
return ($roletext); |
return ($roletext,$roletext_end); |
} |
} |
|
|
sub adhoc_roles_row { |
sub adhoc_roles_row { |
Line 1535 sub recent_filename {
|
Line 1549 sub recent_filename {
|
return 'nohist_recent_'.&escape($area); |
return 'nohist_recent_'.&escape($area); |
} |
} |
|
|
sub set_privileges { |
|
# role can be cc or ca |
|
my ($dcdom,$pickedcourse,$role) = @_; |
|
my $area = '/'.$dcdom.'/'.$pickedcourse; |
|
my $spec = $role.'.'.$area; |
|
my %userroles = &Apache::lonnet::set_arearole($role,$area,'','', |
|
$env{'user.domain'}, |
|
$env{'user.name'}); |
|
my %ccrole = (); |
|
&Apache::lonnet::standard_roleprivs(\%ccrole,$role,$dcdom,$spec,$pickedcourse,$area); |
|
my ($author,$adv)= &Apache::lonnet::set_userprivs(\%userroles,\%ccrole); |
|
&Apache::lonnet::appenv(\%userroles,[$role,'cm']); |
|
|
|
&Apache::lonnet::log($env{'user.domain'}, |
|
$env{'user.name'}, |
|
$env{'user.home'}, |
|
"Role ".$role); |
|
&Apache::lonnet::appenv( |
|
{'request.role' => $spec, |
|
'request.role.domain' => $dcdom, |
|
'request.course.sec' => ''}); |
|
my $tadv=0; |
|
if (&Apache::lonnet::allowed('adv') eq 'F') { $tadv=1; } |
|
&Apache::lonnet::appenv({'request.role.adv' => $tadv}); |
|
} |
|
|
|
sub courseloadpage { |
sub courseloadpage { |
my ($courseid) = @_; |
my ($courseid) = @_; |
my $startpage; |
my $startpage; |