version 1.121.2.18, 2019/08/03 22:45:30
|
version 1.121.2.20, 2020/10/23 21:21:44
|
Line 45 use Digest::MD5;
|
Line 45 use Digest::MD5;
|
# ------------------------------------------------------------ Successful login |
# ------------------------------------------------------------ Successful login |
sub success { |
sub success { |
my ($r, $username, $domain, $authhost, $lowerurl, $extra_env, |
my ($r, $username, $domain, $authhost, $lowerurl, $extra_env, |
$form) = @_; |
$form,$cid) = @_; |
|
|
# ------------------------------------------------------------ Get cookie ready |
# ------------------------------------------------------------ Get cookie ready |
my $cookie = |
my $cookie = |
Line 117 sub success {
|
Line 117 sub success {
|
} |
} |
if (defined($form->{symb})) { |
if (defined($form->{symb})) { |
my $destsymb = $form->{symb}; |
my $destsymb = $form->{symb}; |
|
my $encrypted; |
|
if ($destsymb =~ m{^/enc/}) { |
|
$encrypted = 1; |
|
if ($cid) { |
|
$destsymb = &Apache::lonenc::unencrypted($destsymb,$cid); |
|
} |
|
} |
$destination .= ($destination =~ /\?/) ? '&' : '?'; |
$destination .= ($destination =~ /\?/) ? '&' : '?'; |
if ($destsymb =~ /___/) { |
if ($destsymb =~ /___/) { |
# FIXME Need to deal with encrypted symbs and urls as needed. |
|
my ($map,$resid,$desturl)=split(/___/,$destsymb); |
my ($map,$resid,$desturl)=split(/___/,$destsymb); |
$desturl = &Apache::lonnet::clutter($desturl); |
$desturl = &Apache::lonnet::clutter($desturl); |
|
if ($encrypted) { |
|
$desturl = &Apache::lonenc::encrypted($desturl,1,$cid); |
|
$destsymb = $form->{symb}; |
|
} |
$desturl = &HTML::Entities::encode($desturl,'"<>&'); |
$desturl = &HTML::Entities::encode($desturl,'"<>&'); |
$destsymb = &HTML::Entities::encode($destsymb,'"<>&'); |
$destsymb = &HTML::Entities::encode($destsymb,'"<>&'); |
$destination .= 'destinationurl='.$desturl. |
$destination .= 'destinationurl='.$desturl. |
'&destsymb='.$destsymb; |
'&destsymb='.$destsymb; |
} else { |
} elsif (!$encrypted) { |
$destsymb = &HTML::Entities::encode($destsymb,'"<>&'); |
$destsymb = &HTML::Entities::encode($destsymb,'"<>&'); |
$destination .= 'destinationurl='.$destsymb; |
$destination .= 'destinationurl='.$destsymb; |
} |
} |
Line 528 sub handler {
|
Line 538 sub handler {
|
($is_balancer,$otherserver) = |
($is_balancer,$otherserver) = |
&Apache::lonnet::check_loadbalancing($form{'uname'},$form{'udom'},'login'); |
&Apache::lonnet::check_loadbalancing($form{'uname'},$form{'udom'},'login'); |
if ($is_balancer) { |
if ($is_balancer) { |
|
# Check if browser sent a LON-CAPA load balancer cookie (and this is a balancer) |
|
my ($found_server,$balancer_cookie) = &Apache::lonnet::check_for_balancer_cookie($r); |
|
if (($found_server) && ($balancer_cookie =~ /^\Q$env{'user.domain'}\E_\Q$env{'user.name'}\E_/)) { |
|
$otherserver = $found_server; |
|
} |
if ($otherserver eq '') { |
if ($otherserver eq '') { |
my $lowest_load; |
my $lowest_load; |
($otherserver,undef,undef,undef,$lowest_load) = &Apache::lonnet::choose_server($form{'udom'}); |
($otherserver,undef,undef,undef,$lowest_load) = &Apache::lonnet::choose_server($form{'udom'}); |
Line 560 sub handler {
|
Line 575 sub handler {
|
} |
} |
$r->internal_redirect($switchto); |
$r->internal_redirect($switchto); |
} else { |
} else { |
|
&Apache::loncommon::content_type($r,'text/html'); |
|
$r->send_http_header; |
$r->print(&noswitch()); |
$r->print(&noswitch()); |
} |
} |
return OK; |
return OK; |
Line 581 sub handler {
|
Line 598 sub handler {
|
} |
} |
$r->internal_redirect($switchto); |
$r->internal_redirect($switchto); |
} else { |
} else { |
|
&Apache::loncommon::content_type($r,'text/html'); |
|
$r->send_http_header; |
$r->print(&noswitch()); |
$r->print(&noswitch()); |
} |
} |
return OK; |
return OK; |