version 1.3, 2015/05/17 17:34:43
|
version 1.5, 2021/06/22 16:56:35
|
Line 74 use LONCAPA qw(:DEFAULT);
|
Line 74 use LONCAPA qw(:DEFAULT);
|
sub handler { |
sub handler { |
my $r = shift; |
my $r = shift; |
my $target = '/adm/sso'; |
my $target = '/adm/sso'; |
if (($r->user eq '') && ($r->uri() ne $target)) { |
my $uri = $r->uri; |
|
if (($r->user eq '') && ($uri ne $target)) { |
my $lonhost = $Apache::lonnet::perlvar{'lonHostID'}; |
my $lonhost = $Apache::lonnet::perlvar{'lonHostID'}; |
my $hostname = &Apache::lonnet::hostname($lonhost); |
my $hostname = &Apache::lonnet::hostname($lonhost); |
if (!$hostname) { $hostname = $r->hostname(); } |
if (!$hostname) { $hostname = $r->hostname(); } |
my $protocol = $Apache::lonnet::protocol{$lonhost}; |
my $protocol = $Apache::lonnet::protocol{$lonhost}; |
unless ($protocol eq 'https') { $protocol = 'http'; } |
unless ($protocol eq 'https') { $protocol = 'http'; } |
|
my $alias = &Apache::lonnet::use_proxy_alias($r,$lonhost); |
|
$hostname = $alias if ($alias ne ''); |
my $dest = $protocol.'://'.$hostname.$target; |
my $dest = $protocol.'://'.$hostname.$target; |
$r->subprocess_env; |
$r->subprocess_env; |
if ($ENV{'QUERY_STRING'} ne '') { |
if ($ENV{'QUERY_STRING'} ne '') { |
$dest .= '?'.$ENV{'QUERY_STRING'}; |
$dest .= '?'.$ENV{'QUERY_STRING'}; |
} |
} |
|
if ($uri ne '/adm/roles/') { |
|
unless ($ENV{'QUERY_STRING'} =~ /origurl=/) { |
|
$dest.=(($dest=~/\?/)?'&':'?').'origurl='.$uri; |
|
} |
|
} |
$r->header_out(Location => $dest); |
$r->header_out(Location => $dest); |
return REDIRECT; |
return REDIRECT; |
} else { |
} else { |