version 1.158, 2019/06/16 22:32:04
|
version 1.163, 2021/05/04 18:47:37
|
Line 46 use Digest::MD5;
|
Line 46 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,$skipcritical) = @_;
|
$form,$skipcritical,$cid) = @_;
|
|
|
# ------------------------------------------------------------ Get cookie ready
|
# ------------------------------------------------------------ Get cookie ready
|
my $cookie =
|
my $cookie =
|
Line 60 sub success {
|
Line 60 sub success {
|
|
|
# -------------------------------------------------------------------- Log this
|
# -------------------------------------------------------------------- Log this
|
|
|
|
my $ip = &Apache::lonnet::get_requestor_ip();
|
&Apache::lonnet::log($domain,$username,$authhost,
|
&Apache::lonnet::log($domain,$username,$authhost,
|
"Login $ENV{'REMOTE_ADDR'}");
|
"Login $ip");
|
|
|
# ------------------------------------------------- Check for critical messages
|
# ------------------------------------------------- Check for critical messages
|
|
|
Line 148 sub success {
|
Line 149 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 636 sub handler {
|
Line 647 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'});
|
if ($lowest_load > 100) {
|
if ($lowest_load > 100) {
|
$otherserver = &Apache::lonnet::spareserver($lowest_load,$lowest_load,1,$form{'udom'});
|
$otherserver = &Apache::lonnet::spareserver($r,$lowest_load,$lowest_load,1,$form{'udom'});
|
}
|
}
|
}
|
}
|
if ($otherserver ne '') {
|
if ($otherserver ne '') {
|
Line 676 sub handler {
|
Line 692 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 706 sub handler {
|
Line 724 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 726 sub handler {
|
Line 746 sub handler {
|
|
|
# ---------------------------------------------------------- Are we overloaded?
|
# ---------------------------------------------------------- Are we overloaded?
|
if ((($userloadpercent>100.0)||($loadpercent>100.0))) {
|
if ((($userloadpercent>100.0)||($loadpercent>100.0))) {
|
my $unloaded=Apache::lonnet::spareserver($loadpercent,$userloadpercent,1,$form{'udom'});
|
my $unloaded=Apache::lonnet::spareserver($r,$loadpercent,$userloadpercent,1,$form{'udom'});
|
if (!$unloaded) {
|
if (!$unloaded) {
|
($unloaded) = &Apache::lonnet::choose_server($form{'udom'});
|
($unloaded) = &Apache::lonnet::choose_server($form{'udom'});
|
}
|
}
|
Line 810 sub check_can_host {
|
Line 830 sub check_can_host {
|
if ($login_host ne '') {
|
if ($login_host ne '') {
|
my $protocol = $Apache::lonnet::protocol{$login_host};
|
my $protocol = $Apache::lonnet::protocol{$login_host};
|
$protocol = 'http' if ($protocol ne 'https');
|
$protocol = 'http' if ($protocol ne 'https');
|
|
my $alias = &Apache::lonnet::use_proxy_alias($r,$login_host);
|
|
$hostname = $alias if ($alias ne '');
|
my $newurl = $protocol.'://'.$hostname.'/adm/createaccount';
|
my $newurl = $protocol.'://'.$hostname.'/adm/createaccount';
|
#FIXME Should preserve where user was going and linkprot by setting ltoken at $login_host
|
#FIXME Should preserve where user was going and linkprot by setting ltoken at $login_host
|
$r->print(&Apache::loncommon::start_page('Create a user account in LON-CAPA').
|
$r->print(&Apache::loncommon::start_page('Create a user account in LON-CAPA').
|