--- loncom/auth/lonauth.pm 2022/02/28 01:07:15 1.121.2.26 +++ loncom/auth/lonauth.pm 2024/10/09 17:56:24 1.121.2.27 @@ -1,7 +1,7 @@ # The LearningOnline Network # User Authentication Module # -# $Id: lonauth.pm,v 1.121.2.26 2022/02/28 01:07:15 raeburn Exp $ +# $Id: lonauth.pm,v 1.121.2.27 2024/10/09 17:56:24 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -149,6 +149,27 @@ sub success { } my $windowinfo=&Apache::lonmenu::open($env{'browser.os'}); + if ($env{'environment.remote'} eq 'on') { + my $checkexempt; + if ($env{'user.loadbalexempt'} eq $r->dir_config('lonHostID')) { + if ($env{'user.loadbalcheck.time'} + 600 > time) { + $checkexempt = 1; + } + } + if ($env{'user.noloadbalance'} eq $r->dir_config('lonHostID')) { + $checkexempt = 1; + } + unless (($checkexempt) || + (($destination =~ m{^/adm/switchserver}) && (!$r->is_initial_req()))) { + my ($is_balancer,$otherserver) = + &Apache::lonnet::check_loadbalancing($env{'user.name'}, + $env{'user.domain'}); + if (($is_balancer) && ($otherserver ne '') && + ($otherserver ne $r->dir_config('lonHostID'))) { + $env{'environment.remote'} = 'off'; + } + } + } my $startupremote=&Apache::lonmenu::startupremote($destination); my $remoteinfo=&Apache::lonmenu::load_remote_msg($lowerurl); my $setflags=&Apache::lonmenu::setflags();