Diff for /loncom/auth/switchserver.pm between versions 1.13 and 1.14

version 1.13, 2007/03/02 23:17:48 version 1.14, 2007/08/25 00:52:47
Line 59  sub init_env { Line 59  sub init_env {
     return $r->dir_config('lonIDsDir')."/$handle.id";      return $r->dir_config('lonIDsDir')."/$handle.id";
 }  }
   
   sub do_redirect {
       my ($r,$url,$only_body,$extra_text) = @_;
       $r->send_http_header;
       my $switch='<meta HTTP-EQUIV="Refresh" CONTENT="0; url='.$url.'">';
       my $start_page = 
    &Apache::loncommon::start_page('Switching Server ...', $switch,
          {'no_inline_link' => 1,
    'only_body'      => $only_body,});
       my $end_page   = &Apache::loncommon::end_page();
       $r->print($start_page.$extra_text.$end_page);
       return OK;
   
   }
   
 sub handler {  sub handler {
     my ($r) = @_;      my ($r) = @_;
           
Line 76  sub handler { Line 90  sub handler {
   
     if (!defined($switch_to)) { return FORBIDDEN; }      if (!defined($switch_to)) { return FORBIDDEN; }
   
       if ($env{'user.name'} eq 'public'
    && $env{'user.domain'} eq 'public') {
    my $url = 'http://'.$switch_to.'/'.$r->uri;
    return &do_redirect($r,$url,1)
       }
   
     if ($env{'form.role'} &&       if ($env{'form.role'} && 
  !exists($env{'user.role.'.$env{'form.role'}})) { return FORBIDDEN; }   !exists($env{'user.role.'.$env{'form.role'}})) { return FORBIDDEN; }
   
Line 99  sub handler { Line 119  sub handler {
     return OK if $r->header_only;      return OK if $r->header_only;
 # -------------------------------------------------------- Menu script and info  # -------------------------------------------------------- Menu script and info
         
     my $windowinfo=&Apache::lonmenu::close();      my $windowinfo=
     $windowinfo.=&Apache::lonnavmaps::close();   &Apache::lonmenu::close().
    &Apache::lonnavmaps::close();
 # ---------------------------------------------------------------- Get handover  # ---------------------------------------------------------------- Get handover
   
     my %info=('ip'       => $ENV{'REMOTE_ADDR'},      my %info=('ip'       => $ENV{'REMOTE_ADDR'},
Line 115  sub handler { Line 136  sub handler {
         $info{'sso.reloginserver'} = $env{'request.sso.reloginserver'};          $info{'sso.reloginserver'} = $env{'request.sso.reloginserver'};
     }      }
     my $token = &Apache::lonnet::tmpput(\%info,$env{'form.otherserver'});      my $token = &Apache::lonnet::tmpput(\%info,$env{'form.otherserver'});
     my $switch='<meta HTTP-EQUIV="Refresh" CONTENT="0.5; url=http://'.$switch_to.'/adm/login?domain='.$env{'user.domain'}.'&username='.$env{'user.name'}.'&token='.$token.'">';      my $url ='http://'.$switch_to.'/adm/login?'.
     my $start_page = &Apache::loncommon::start_page('Switching Server ...',   'domain='.$env{'user.domain'}.
     $switch,   '&amp;username='.$env{'user.name'}.
     {'no_inline_link' => 1,});   '&amp;token='.$token;
     my $end_page   = &Apache::loncommon::end_page();  
 # --------------------------------------------------------------- Screen Output  # --------------------------------------------------------------- Screen Output
     $r->print($start_page.$windowinfo.$end_page);  
   
     &Apache::lonnet::flushcourselogs();      &Apache::lonnet::flushcourselogs();
     return OK;      return &do_redirect($r,$url,0,$windowinfo);
 }  }
   
 1;  1;

Removed from v.1.13  
changed lines
  Added in v.1.14


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>