--- loncom/auth/lonroles.pm 2014/05/04 21:49:05 1.302 +++ loncom/auth/lonroles.pm 2014/05/20 20:46:13 1.305 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # User Roles Screen # -# $Id: lonroles.pm,v 1.302 2014/05/04 21:49:05 raeburn Exp $ +# $Id: lonroles.pm,v 1.305 2014/05/20 20:46:13 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -128,7 +128,7 @@ package Apache::lonroles; use strict; use Apache::lonnet; use Apache::lonuserstate(); -use Apache::Constants qw(:common); +use Apache::Constants qw(:common REDIRECT); use Apache::File(); use Apache::lonmenu; use Apache::loncommon; @@ -202,6 +202,14 @@ sub handler { my $r = shift; + # Check for critical messages and redirect if present. + my ($redirect,$url) = &Apache::loncommon::critical_redirect(300); + if ($redirect) { + &Apache::loncommon::content_type($r,'text/html'); + $r->header_out(Location => $url); + return REDIRECT; + } + my $now=time; my $then=$env{'user.login.time'}; my $refresh=$env{'user.refresh.time'}; @@ -247,7 +255,7 @@ sub handler { my $envkey; my %dcroles = (); my $numdc = &check_fordc(\%dcroles,$update,$then); - my $loncaparev = $Apache::lonnet::perlvar{'lonVersion'}; + my $loncaparev = $r->dir_config('lonVersion'); # ================================================================== Roles Init if ($env{'form.selectrole'}) { @@ -1758,7 +1766,7 @@ sub check_release_required { my $otherserver; if (($major eq '' && $minor eq '') || (($reqdmajor > $major) || (($reqdmajor == $major) && ($reqdminor > $minor)))) { - my ($userdomserver) = &Apache::lonnet::choose_server($env{'user.domain'},undef,$required); + my ($userdomserver) = &Apache::lonnet::choose_server($env{'user.domain'},undef,$required,1); my $switchlcrev = &Apache::lonnet::get_server_loncaparev($env{'user.domain'}, $userdomserver); @@ -1767,7 +1775,7 @@ sub check_release_required { (($reqdmajor == $swmajor) && ($reqdminor > $swminor))) { my $cdom = $env{'course.'.$tcourseid.'.domain'}; if ($cdom ne $env{'user.domain'}) { - my ($coursedomserver,$coursehostname) = &Apache::lonnet::choose_server($cdom); + my ($coursedomserver,$coursehostname) = &Apache::lonnet::choose_server($cdom,undef,$required,1); my $serverhomeID = &Apache::lonnet::get_server_homeID($coursehostname); my $serverhomedom = &Apache::lonnet::host_domain($serverhomeID); my %defdomdefaults = &Apache::lonnet::get_domain_defaults($serverhomedom);