version 1.34, 2015/01/22 22:45:06
|
version 1.37, 2017/08/08 20:10:55
|
Line 106 sub handler {
|
Line 106 sub handler {
|
if ($env{'user.name'} eq 'public' |
if ($env{'user.name'} eq 'public' |
&& $env{'user.domain'} eq 'public') { |
&& $env{'user.domain'} eq 'public') { |
my $url = $protocol.'://'.$switch_to.$r->uri; |
my $url = $protocol.'://'.$switch_to.$r->uri; |
|
unlink($handle); |
|
#expire the cookie |
|
my $c = new CGI::Cookie(-name => 'lonPubID', |
|
-value => '', |
|
-expires => '-10y',); |
|
$r->header_out('Set-cookie' => $c); |
return &do_redirect($r,$url,1) |
return &do_redirect($r,$url,1) |
} |
} |
|
|
my $skip_canhost_check = ''; |
my $skip_canhost_check = ''; |
if ($env{'form.role'}) { |
if ($env{'form.role'}) { |
if (!exists($env{'user.role.'.$env{'form.role'}})) { |
if (!exists($env{'user.role.'.$env{'form.role'}})) { |
return FORBIDDEN; |
delete($env{'form.role'}); |
} else { |
} else { |
my $now = time; |
my $now = time; |
my ($start,$end) = split(/\./,$env{'user.role.'.$env{'form.role'}}); |
my ($start,$end) = split(/\./,$env{'user.role.'.$env{'form.role'}}); |
if (($start && $start > $now) || ($end && $end < $now)) { |
if (($start && $start > $now) || ($end && $end < $now)) { |
return FORBIDDEN; |
delete($env{'form.role'}); |
} elsif ($env{'form.role'} eq 'au./'.$env{'user.domain'}.'/') { |
} elsif ($env{'form.role'} eq 'au./'.$env{'user.domain'}.'/') { |
if (&Apache::lonnet::homeserver($env{'user.name'},$env{'user.domain'}) eq $env{'form.otherserver'}) { |
if (&Apache::lonnet::homeserver($env{'user.name'},$env{'user.domain'}) eq $env{'form.otherserver'}) { |
$skip_canhost_check = 1; |
$skip_canhost_check = 1; |
} |
} |
} elsif ($env{'form.role'} =~ m{^[ac]a\./($match_domain)/($match_username)$}) { |
} elsif ($env{'form.role'} =~ m{^[ac]a\./($match_domain)/($match_username)$}) { |
if (&Apache::lonnet::homeserver($2,$1) eq $env{'form.otherserver'}) { |
my ($audom,$auname) = ($1,$2); |
$skip_canhost_check = 1; |
if (&Apache::lonnet::homeserver($auname,$audom) eq $env{'form.otherserver'}) { |
|
if ((&Apache::lonnet::will_trust('othcoau',$audom,$env{'user.domain'})) && |
|
(&Apache::lonnet::will_trust('coremau',$env{'user.domain'},$audom))) { |
|
$skip_canhost_check = 1; |
|
} |
} |
} |
} |
} |
} |
} |
Line 157 sub handler {
|
Line 167 sub handler {
|
|
|
#remove session env, and log event |
#remove session env, and log event |
unlink($handle); |
unlink($handle); |
|
if ($env{'user.linkedenv'} ne '') { |
|
my $lonidsdir=$r->dir_config('lonIDsDir'); |
|
if ((-l $env{'user.linkedenv'}) && |
|
(readlink($env{'user.linkedenv'}) eq "$lonidsdir/$handle.id")) { |
|
unlink($env{'user.linkedenv'}); |
|
} |
|
} |
my %temp=('switchserver' => time.':'.$env{'form.otherserver'}, |
my %temp=('switchserver' => time.':'.$env{'form.otherserver'}, |
$env{'form.role'}); |
$env{'form.role'}); |
&Apache::lonnet::put('email_status',\%temp); |
&Apache::lonnet::put('email_status',\%temp); |
Line 176 sub handler {
|
Line 193 sub handler {
|
my $c = new CGI::Cookie(-name => 'lonID', |
my $c = new CGI::Cookie(-name => 'lonID', |
-value => '', |
-value => '', |
-expires => '-10y',); |
-expires => '-10y',); |
$r->header_out('Set-cookie' => $c); |
$r->headers_out->add('Set-cookie' => $c); |
|
if ($env{'user.linkedenv'}) { |
|
my $linked = new CGI::Cookie(-name => 'lonLinkID', |
|
-value => '', |
|
-expires => '-10y',); |
|
$r->headers_out->add('Set-cookie' => $linked); |
|
} |
|
|
if ($r->header_only) { |
if ($r->header_only) { |
$r->send_http_header; |
$r->send_http_header; |