version 1.168, 2006/10/20 19:59:57
|
version 1.174, 2006/12/14 20:49:23
|
Line 42 use Apache::lonlocal;
|
Line 42 use Apache::lonlocal;
|
use Apache::lonpageflip(); |
use Apache::lonpageflip(); |
use Apache::lonnavdisplay(); |
use Apache::lonnavdisplay(); |
use GDBM_File; |
use GDBM_File; |
use LONCAPA; |
use LONCAPA qw(:DEFAULT :match); |
|
|
|
|
sub redirect_user { |
sub redirect_user { |
Line 126 sub handler {
|
Line 126 sub handler {
|
if ($numdc > 0) { |
if ($numdc > 0) { |
foreach my $envkey (keys %env) { |
foreach my $envkey (keys %env) { |
if (my ($domain,$coursenum) = |
if (my ($domain,$coursenum) = |
($envkey =~ m-^form\.cc\./(\w+)/(\w+)$-)) { |
($envkey =~ m-^form\.cc\./($match_domain)/($match_courseid)$-)) { |
if ($dcroles{$domain}) { |
if ($dcroles{$domain}) { |
&check_privs($domain,$coursenum,$then,$now); |
&check_privs($domain,$coursenum,$then,$now); |
} |
} |
Line 165 sub handler {
|
Line 165 sub handler {
|
my $authnum=$cnum; |
my $authnum=$cnum; |
if ($env{'course.'.$cdom.'_'.$cnum.'.keyauth'}) { |
if ($env{'course.'.$cdom.'_'.$cnum.'.keyauth'}) { |
($authnum,$authdom)= |
($authnum,$authdom)= |
split(/\W/,$env{'course.'.$cdom.'_'.$cnum.'.keyauth'}); |
split(/:/,$env{'course.'.$cdom.'_'.$cnum.'.keyauth'}); |
} |
} |
# check with key authority |
# check with key authority |
unless (&Apache::lonnet::validate_access_key( |
unless (&Apache::lonnet::validate_access_key( |
Line 313 ENDENTERKEY
|
Line 313 ENDENTERKEY
|
} |
} |
} |
} |
# Are we allowed to look at the first resource? |
# Are we allowed to look at the first resource? |
if (!&Apache::lonnet::allowed('bre',$furl)) { |
if ($furl !~ m|^/adm/|) { |
# Guess not ... |
# Guess not ... |
$furl=&Apache::lonpageflip::first_accessible_resource(); |
$furl=&Apache::lonpageflip::first_accessible_resource(); |
} |
} |
Line 407 ENDHEADER
|
Line 407 ENDHEADER
|
# --------------------------------------------------------------- Error Header? |
# --------------------------------------------------------------- Error Header? |
if ($error) { |
if ($error) { |
$r->print("<h1>LON-CAPA Access Control</h1>"); |
$r->print("<h1>LON-CAPA Access Control</h1>"); |
$r->print("<!-- LONCAPAACCESSCONTROLERRORSCREEN --><hr /><pre>Access : ". |
$r->print("<!-- LONCAPAACCESSCONTROLERRORSCREEN --><hr /><pre>"); |
Apache::lonnet::plaintext($priv)."\n"); |
if ($priv ne '') { |
$r->print("Resource: ".&Apache::lonenc::check_encrypt($fn)."\n"); |
$r->print("Access : ".&Apache::lonnet::plaintext($priv)."\n"); |
$r->print("Action : $msg\n</pre><hr />"); |
} |
|
if ($fn ne '') { |
|
$r->print("Resource: ".&Apache::lonenc::check_encrypt($fn)."\n"); |
|
} |
|
if ($msg ne '') { |
|
$r->print("Action : $msg\n"); |
|
} |
|
$r->print("</pre><hr />"); |
my $url=$fn; |
my $url=$fn; |
my $last; |
my $last; |
if (tie(my %hash,'GDBM_File',$env{'request.course.fn'}.'_symb.db', |
if (tie(my %hash,'GDBM_File',$env{'request.course.fn'}.'_symb.db', |
Line 639 ENDHEADER
|
Line 646 ENDHEADER
|
# More than one possible role |
# More than one possible role |
# ----------------------------------------------------------------------- Table |
# ----------------------------------------------------------------------- Table |
unless (($advanced) || ($nochoose)) { |
unless (($advanced) || ($nochoose)) { |
$r->print("<h2>".&mt('Select a Course/Group to Enter')."</h2>\n"); |
$r->print("<h2>".&mt('Select a Course to Enter')."</h2>\n"); |
} |
} |
$r->print('<br /><table><tr>'); |
$r->print('<br /><table><tr>'); |
unless ($nochoose) { $r->print('<th> </th>'); } |
unless ($nochoose) { $r->print('<th> </th>'); } |
$r->print('<th>'.&mt('User Role').'</th><th>'.&mt('Extent'). |
$r->print('<th>'.&mt('User Role').'</th><th>'.&mt('Extent'). |
'</th><th>'.&mt('Start').'</th><th>'.&mt('End').'</th></tr>'."\n"); |
'</th><th>'.&mt('Start').'</th><th>'.&mt('End').'</th></tr>'."\n"); |
my $doheaders=-1; |
my $doheaders=-1; |
foreach my $type ('Domain','Construction Space','Course','Group','Unavailable','System') { |
foreach my $type ('Domain','Construction Space','Course','Unavailable','System') { |
my $haverole=0; |
my $haverole=0; |
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/) { |
Line 663 ENDHEADER
|
Line 670 ENDHEADER
|
foreach (sort(keys(%recent_roles))) { |
foreach (sort(keys(%recent_roles))) { |
if (defined($roletext{'user.role.'.$_})) { |
if (defined($roletext{'user.role.'.$_})) { |
$output.=$roletext{'user.role.'.$_}; |
$output.=$roletext{'user.role.'.$_}; |
if ($_ =~ m-dc\./(\w+)/- && $dcroles{$1}) { |
if ($_ =~ m-dc\./($match_domain)/- |
|
&& $dcroles{$1}) { |
$output .= &allcourses_row($1,'recent'); |
$output .= &allcourses_row($1,'recent'); |
} |
} |
} elsif ($numdc > 0) { |
} elsif ($numdc > 0) { |
Line 685 ENDHEADER
|
Line 693 ENDHEADER
|
$r->print(&coursepick_jscript()); |
$r->print(&coursepick_jscript()); |
$r->print(&Apache::loncommon::coursebrowser_javascript()); |
$r->print(&Apache::loncommon::coursebrowser_javascript()); |
} |
} |
foreach my $type ('Construction Space','Domain','Course','Group','Unavailable','System') { |
foreach my $type ('Construction Space','Domain','Course','Unavailable','System') { |
my $output; |
my $output; |
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/) { |
$output.=$roletext{$sortrole{$which}}; |
$output.=$roletext{$sortrole{$which}}; |
if ($sortrole{$which} =~ m-dc\./(\w+)/-) { |
if ($sortrole{$which} =~ m-dc\./($match_domain)/-) { |
if ($dcroles{$1}) { |
if ($dcroles{$1}) { |
$output .= &allcourses_row($1,''); |
$output .= &allcourses_row($1,''); |
} |
} |
Line 890 sub check_fordc {
|
Line 898 sub check_fordc {
|
my $numdc = 0; |
my $numdc = 0; |
if ($env{'user.adv'}) { |
if ($env{'user.adv'}) { |
foreach my $envkey (sort keys %env) { |
foreach my $envkey (sort keys %env) { |
if ($envkey=~/^user\.role\.dc\.\/(\w+)\/$/) { |
if ($envkey=~/^user\.role\.dc\.\/($match_domain)\/$/) { |
my $dcdom = $1; |
my $dcdom = $1; |
my $livedc = 1; |
my $livedc = 1; |
my ($tstart,$tend)=split(/\./,$env{$envkey}); |
my ($tstart,$tend)=split(/\./,$env{$envkey}); |
Line 911 sub courselink {
|
Line 919 sub courselink {
|
my $courseform=&Apache::loncommon::selectcourse_link |
my $courseform=&Apache::loncommon::selectcourse_link |
('rolechoice','dccourse'.$rowtype.'_'.$dcdom, |
('rolechoice','dccourse'.$rowtype.'_'.$dcdom, |
'dcdomain'.$rowtype.'_'.$dcdom,'coursedesc'.$rowtype.'_'. |
'dcdomain'.$rowtype.'_'.$dcdom,'coursedesc'.$rowtype.'_'. |
$dcdom,$dcdom,undef,$selecttype); |
$dcdom,$dcdom,undef); |
my $hiddenitems = '<input type="hidden" name="dcdomain'.$rowtype.'_'.$dcdom.'" value="'.$dcdom.'" />'. |
my $hiddenitems = '<input type="hidden" name="dcdomain'.$rowtype.'_'.$dcdom.'" value="'.$dcdom.'" />'. |
'<input type="hidden" name="origdom'.$rowtype.'_'.$dcdom.'" value="'.$dcdom.'" />'. |
'<input type="hidden" name="origdom'.$rowtype.'_'.$dcdom.'" value="'.$dcdom.'" />'. |
'<input type="hidden" name="dccourse'.$rowtype.'_'.$dcdom.'" value="" />'. |
'<input type="hidden" name="dccourse'.$rowtype.'_'.$dcdom.'" value="" />'. |
Line 987 sub display_cc_role {
|
Line 995 sub display_cc_role {
|
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\:/) { |
if ($rolekey =~ m-^user\.role.cc\./(\w+)/(\w+)$-) { |
if ($rolekey =~ m-^user\.role.cc\./($match_domain)/($match_courseid)$-) { |
my $tcourseid = $1.'_'.$2; |
my $tcourseid = $1.'_'.$2; |
my $trolecode = 'cc./'.$1.'/'.$2; |
my $trolecode = 'cc./'.$1.'/'.$2; |
my $twhere; |
my $twhere; |
Line 1017 sub allcourses_row {
|
Line 1025 sub allcourses_row {
|
my ($dcdom,$rowtype) = @_; |
my ($dcdom,$rowtype) = @_; |
my $output = '<tr bgcolor="#77FF77">'. |
my $output = '<tr bgcolor="#77FF77">'. |
' <td colspan="5">'; |
' <td colspan="5">'; |
foreach my $type ('Course','Group') { |
my $selectlink = &courselink($dcdom,$rowtype); |
my $selectlink = &courselink($dcdom,$rowtype,$type); |
my $ccrole = &Apache::lonnet::plaintext('cc'); |
my $ccrole = &Apache::lonnet::plaintext('cc',$type); |
$output.= '<font color="#002200">'.$ccrole.'</font>'. |
$output.= '<font color="#002200">'.$ccrole.'</font>'. |
|
' <b>'.$selectlink.'</b>'. |
' <b>'.$selectlink.'</b>'. |
' from '.&mt('Domain').' '.$dcdom.'<br />'; |
' from '.&mt('Domain').' '.$dcdom.'<br />'; |
} |
|
$output .= '</tr><tr><td colspan="5" height="3"></td></tr>'."\n"; |
$output .= '</tr><tr><td colspan="5" height="3"></td></tr>'."\n"; |
return $output; |
return $output; |
} |
} |