--- loncom/auth/lonroles.pm 2004/11/14 18:27:08 1.110 +++ loncom/auth/lonroles.pm 2004/12/17 21:44:19 1.115 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # User Roles Screen # -# $Id: lonroles.pm,v 1.110 2004/11/14 18:27:08 raeburn Exp $ +# $Id: lonroles.pm,v 1.115 2004/12/17 21:44:19 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -84,10 +84,6 @@ sub handler { my $envkey; my %dcroles = (); my $numdc = &check_fordc(\%dcroles,$then); - my %recentroles; - if ($numdc > 0) { - %recentroles = &Apache::lonnet::dump(&recent_filename('roles')); - } # ================================================================== Roles Init if ($ENV{'form.selectrole'}) { @@ -117,16 +113,6 @@ sub handler { } } -# Check if user is a DC with courses in the recent list which need privs. -# if ($numdc > 0) { -# %recentroles = &Apache::lonnet::dump(&recent_filename('recent_roles')); -# foreach my $rolekey (keys %recentroles) { -# if ($rolekey =~ m-^user\.role.cc\./\w+/\w+$-) { -# &check_privs($rolekey,$then,$now); -# } -# } -# } - foreach $envkey (keys %ENV) { next if ($envkey!~/^user\.role\./); my ($where,$trolecode,$role,$tstatus,$tend,$tstart); @@ -135,6 +121,13 @@ sub handler { if ($tstatus eq 'is') { $where=~s/^\///; my ($cdom,$cnum,$csec)=split(/\//,$where); +# store role if recent_role list being kept + if ($ENV{'environment.recentroles'}) { + &Apache::lonhtmlcommon::store_recent('roles', + $trolecode,' '); + } + + # check for keyed access if (($role eq 'st') && ($ENV{'course.'.$cdom.'_'.$cnum.'.keyaccess'} eq 'yes')) { @@ -269,16 +262,6 @@ ENDENTERKEY '.course.helper.not.run'}) { $furl = "/adm/helper/course.initialization.helper"; } - # Check to see if the user is a DC selecting a course - if (($numdc > 0) && ($role eq 'cc')) { - my $formaction = '/adm/roles/'; - my ($dcdom,$pickedcourse) = split/_/,$courseid; - if ($ENV{'user.role.dc./'.$dcdom.'/'}) { - &Apache::lonhtmlcommon::store_recent('roles', - $envkey,$formaction); - } - } - # # Send the user to the course they selected &redirect_user($r,&mt('Entering Course'), $furl,$msg, @@ -356,7 +339,7 @@ ENDHEADER $r->print("

LON-CAPA Access Control

"); $r->print("
Access  : ".
                   Apache::lonnet::plaintext($priv)."\n");
-        $r->print("Resource: $fn\n");
+        $r->print("Resource: ".&Apache::lonenc::check_encrypt($fn)."\n");
         $r->print("Action  : $msg\n

"); } else { if ($ENV{'user.error.msg'}) { @@ -556,7 +539,6 @@ ENDHEADER $sortkey=$role.$twhere; } - $roletext.=''; $roletext.=&build_roletext($trolecode,$tdom,$trest,$tstatus,$tryagain,$advanced,$tremark,$tbg,$tfont,$trole,$ttype,$twhere,$tpstart,$tpend,$nochoose,$button,$switchserver); $roletext{$envkey}=$roletext; if (!$sortkey) {$sortkey=$twhere."\0".$envkey;} @@ -604,8 +586,32 @@ ENDHEADER } if ($haverole) { $doheaders++; } } + + if ($ENV{'environment.recentroles'}) { + my %recent_roles = + &Apache::lonhtmlcommon::get_recent('roles',$ENV{'environment.recentrolesn'}); + my $output=''; + foreach (sort(keys(%recent_roles))) { + if (defined($roletext{'user.role.'.$_})) { + $output.=$roletext{'user.role.'.$_}; + } elsif ($numdc > 0) { + unless ($_ =~/^error\:/) { + $output.=&display_cc_role('user.role.'.$_); + } + } + } + if ($output) { + $r->print("". + &mt('Recent Roles').""); + $r->print($output); + $r->print(""); + $doheaders ++; + } + } + if ($numdc > 0) { - &display_recent_roles($r,\%roletext,\%recentroles); + $r->print(&coursepick_jscript()); + $r->print(&Apache::loncommon::coursebrowser_javascript()); } foreach my $type ('Construction Space','Course','Domain','System') { my $output; @@ -622,7 +628,7 @@ ENDHEADER if ($output) { if ($doheaders > 0) { $r->print("". - "".&mt($type).""); + "".&mt($type).""); } $r->print($output); } @@ -743,7 +749,7 @@ sub role_status { sub build_roletext { my ($trolecode,$tdom,$trest,$tstatus,$tryagain,$advanced,$tremark,$tbg,$tfont,$trole,$ttype,$twhere,$tpstart,$tpend,$nochoose,$button,$switchserver) = @_; - my $roletext=''; + my $roletext=''; unless ($nochoose) { if (!$button) { if ($switchserver) { @@ -818,26 +824,23 @@ sub check_fordc { sub courselink { my ($dcdom) = @_; - my $cb_jscript = &Apache::loncommon::coursebrowser_javascript($dcdom,$dcdom); - my $verify_script = &coursepick_jscript($dcdom); my $courseform=&Apache::loncommon::selectcourse_link - ('rolechoice','dccourse_'.$dcdom,'dcdomain_'.$dcdom,'coursedesc_'.$dcdom); + ('rolechoice','dccourse_'.$dcdom,'dcdomain_'.$dcdom,'coursedesc_'.$dcdom,$dcdom); my $hiddenitems = ''. ''. ''. ''; - return $cb_jscript.$verify_script.$courseform.$hiddenitems; + return $courseform.$hiddenitems; } sub coursepick_jscript { - my ($dcdom) = @_; my $verify_script = <<"END";