Diff for /loncom/auth/lonlogin.pm between versions 1.158.2.13.2.7 and 1.158.2.13.2.11

version 1.158.2.13.2.7, 2022/08/30 12:28:08 version 1.158.2.13.2.11, 2023/12/29 23:49:12
Line 50  sub handler { Line 50  sub handler {
       $ENV{'REDIRECT_QUERY_STRING'}),        $ENV{'REDIRECT_QUERY_STRING'}),
  ['interface','username','domain','firsturl','localpath','localres',   ['interface','username','domain','firsturl','localpath','localres',
   'token','role','symb','iptoken','btoken','ltoken','ttoken','linkkey',    'token','role','symb','iptoken','btoken','ltoken','ttoken','linkkey',
           'saml','sso','retry']);            'saml','sso','retry','display']);
   
 # -- check if they are a migrating user  # -- check if they are a migrating user
     if (defined($env{'form.token'})) {      if (defined($env{'form.token'})) {
Line 68  sub handler { Line 68  sub handler {
             $env{'form.ltoken'} = $info{'ltoken'};              $env{'form.ltoken'} = $info{'ltoken'};
         } elsif ($info{'linkprot'}) {          } elsif ($info{'linkprot'}) {
             $env{'form.linkprot'} = $info{'linkprot'};              $env{'form.linkprot'} = $info{'linkprot'};
             foreach my $item ('linkprotuser','linkprotexit') {              foreach my $item ('linkprotuser','linkprotexit','linkprotpbid','linkprotpburl') {
                 if ($info{$item} ne '') {                  if ($info{$item} ne '') {
                     $env{'form.'.$item} = $info{$item};                      $env{'form.'.$item} = $info{$item};
                 }                  }
Line 175  sub handler { Line 175  sub handler {
             if ($env{'form.symb'}) {              if ($env{'form.symb'}) {
                 $info{'symb'} = $env{'form.symb'};                  $info{'symb'} = $env{'form.symb'};
             }              }
               if (($env{'form.firsturl'} eq '/adm/email') && ($env{'form.display'} ne '')) {
                   if ($env{'form.sso'}) {
                       if ($env{'form.mailrecip'}) {
                           $info{'display'} = &escape($env{'form.display'});
                           $info{'mailrecip'} = &escape($env{'form.mailrecip'});
                       }
                   } else {
                       if (($env{'form.username'}) && ($env{'form.domain'})) {
                           $info{'display'} = &escape($env{'form.display'});
                           $info{'mailrecip'} = &escape($env{'form.username'}.':'.$env{'form.domain'});
                       }
                   }
               }
             my $balancer_token = &Apache::lonnet::tmpput(\%info,$found_server);              my $balancer_token = &Apache::lonnet::tmpput(\%info,$found_server);
             unless (($balancer_token eq 'con_lost') || ($balancer_token eq 'refused') ||              unless (($balancer_token eq 'con_lost') || ($balancer_token eq 'refused') ||
                     ($balancer_token eq 'unknown_cmd') || ($balancer_token eq 'no_such_host')) {                      ($balancer_token eq 'unknown_cmd') || ($balancer_token eq 'no_such_host')) {
Line 186  sub handler { Line 199  sub handler {
                     $link_info{'ltoken'} = $env{'form.ltoken'};                      $link_info{'ltoken'} = $env{'form.ltoken'};
                 } elsif ($env{'form.linkprot'}) {                  } elsif ($env{'form.linkprot'}) {
                     $link_info{'linkprot'} = $env{'form.linkprot'};                      $link_info{'linkprot'} = $env{'form.linkprot'};
                     foreach my $item ('linkprotuser','linkprotexit') {                      foreach my $item ('linkprotuser','linkprotexit','linkprotpbid','linkprotpburl') {
                         if ($env{'form.'.$item} ne '') {                          if ($env{'form.'.$item} ne '') {
                             $link_info{$item} = $env{'form.'.$item};                              $link_info{$item} = $env{'form.'.$item};
                         }                          }
Line 228  sub handler { Line 241  sub handler {
         $balcookie = $info{'balcookie'};          $balcookie = $info{'balcookie'};
         &Apache::lonnet::tmpdel($env{'form.btoken'});          &Apache::lonnet::tmpdel($env{'form.btoken'});
         delete($env{'form.btoken'});          delete($env{'form.btoken'});
           if (($env{'form.firsturl'} eq '/adm/email') &&
               (exists($info{'display'})) && (exists($info{'mailrecip'}))) {
               $env{'form.display'} = &unescape($info{'display'});
               $env{'form.mailrecip'} = &unescape($info{'mailrecip'});
           }
     }      }
   
 #  #
Line 259  sub handler { Line 277  sub handler {
             $dest = &HTML::Entities::encode($env{'form.firsturl'},'\'"<>&');              $dest = &HTML::Entities::encode($env{'form.firsturl'},'\'"<>&');
         }          }
         if (($env{'form.ltoken'}) || ($env{'form.linkprot'})) {          if (($env{'form.ltoken'}) || ($env{'form.linkprot'})) {
             my ($linkprot,$linkprotuser,$linkprotexit);              my ($linkprot,$linkprotuser,$linkprotexit,$linkprotpbid,$linkprotpburl);
             if ($env{'form.ltoken'}) {              if ($env{'form.ltoken'}) {
                 my %info = &Apache::lonnet::tmpget($env{'form.ltoken'});                  my %info = &Apache::lonnet::tmpget($env{'form.ltoken'});
                 $linkprot = $info{'linkprot'};                  $linkprot = $info{'linkprot'};
Line 269  sub handler { Line 287  sub handler {
                 if ($info{'linkprotexit'} ne '') {                  if ($info{'linkprotexit'} ne '') {
                     $linkprotexit = $info{'linkprotexit'};                      $linkprotexit = $info{'linkprotexit'};
                 }                  }
                   if ($info{'linkprotpbid'} ne '') {
                       $linkprotpbid = $info{'linkprotpbid'};
                   }
                   if ($info{'linkprotpburl'} ne '') {
                       $linkprotpburl = $info{'linkprotpburl'};
                   }
             } else {              } else {
                 $linkprot = $env{'form.linkprot'};                  $linkprot = $env{'form.linkprot'};
                 $linkprotuser = $env{'form.linkprotuser'};                  $linkprotuser = $env{'form.linkprotuser'};
                 $linkprotexit = $env{'form.linkprotexit'};                  $linkprotexit = $env{'form.linkprotexit'};
                   $linkprotpbid = $env{'form.linkprotpbid'};
                   $linkprotpburl = $env{'form.linkprotpburl'};
             }              }
             if ($linkprot) {              if ($linkprot) {
                 my ($linkprotector,$deeplink) = split(/:/,$linkprot,2);                  my ($linkprotector,$deeplink) = split(/:/,$linkprot,2);
Line 284  sub handler { Line 310  sub handler {
                                           linkprot => $linkprot,                                            linkprot => $linkprot,
                                           linkprotuser => $linkprotuser,                                            linkprotuser => $linkprotuser,
                                           linkprotexit => $linkprotexit,                                            linkprotexit => $linkprotexit,
                                             linkprotpbid => $linkprotpbid,
                                             linkprotpburl => $linkprotpburl,
                                        );                                         );
                     if ($env{'form.ltoken'}) {                      if ($env{'form.ltoken'}) {
                         my $delete = &Apache::lonnet::tmpdel($env{'form.ltoken'});                          my $delete = &Apache::lonnet::tmpdel($env{'form.ltoken'});
Line 339  sub handler { Line 367  sub handler {
         if ($env{'form.ltoken'}) {          if ($env{'form.ltoken'}) {
             my $delete = &Apache::lonnet::tmpdel($env{'form.ltoken'});              my $delete = &Apache::lonnet::tmpdel($env{'form.ltoken'});
         }          }
           if (($env{'form.firsturl'} eq '/adm/email') && ($env{'form.display'})) {
               if ($env{'form.mailrecip'}) {
                   if ($env{'form.mailrecip'} eq "$env{'user.name'}:$env{'user.domain'}") {
                       $dest .= (($dest=~/\?/)?'&amp;':'?') . 'display='.&escape($env{'form.display'}).
                                                              '&amp;mailrecip='.&escape($env{'form.mailrecip'});
                   }
               } elsif (($env{'form.username'} eq $env{'user.name'}) && ($env{'form.domain'} eq $env{'user.domain'})) {
                   $dest .= (($dest=~/\?/)?'&amp;':'?') . 'display='.&escape($env{'form.display'}).
                                                          '&amp;mailrecip='.&escape("$env{'user.name'}:$env{'form.domain'}");
               }
           }
  $r->print(   $r->print(
               $start_page                $start_page
              .'<p class="LC_warning">'.&mt('You are already logged in!').'</p>'               .'<p class="LC_warning">'.&mt('You are already logged in!').'</p>'
Line 464  sub handler { Line 503  sub handler {
   
 # -------------------------------------------------------- Store away log token  # -------------------------------------------------------- Store away log token
     my ($tokenextras,$tokentype,$linkprot_for_login);      my ($tokenextras,$tokentype,$linkprot_for_login);
     my @names = ('role','symb','iptoken','ltoken','linkprotuser','linkprotexit','linkprot','linkkey');      my @names = ('role','symb','iptoken','ltoken','linkprotuser','linkprotexit',
                    'linkprot','linkkey','display','linkprotpbid','linkprotpburl');
     foreach my $name (@names) {      foreach my $name (@names) {
         if ($env{'form.'.$name} ne '') {          if ($env{'form.'.$name} ne '') {
             if ($name eq 'ltoken') {              if ($name eq 'ltoken') {
Line 472  sub handler { Line 512  sub handler {
                 if ($info{'linkprot'}) {                  if ($info{'linkprot'}) {
                     $linkprot_for_login = $info{'linkprot'};                      $linkprot_for_login = $info{'linkprot'};
                     $tokenextras .= '&linkprot='.&escape($info{'linkprot'});                      $tokenextras .= '&linkprot='.&escape($info{'linkprot'});
                     foreach my $item ('linkprotuser','linkprotexit') {                      foreach my $item ('linkprotuser','linkprotexit','linkprotpbid','linkprotpburl') {
                         if ($info{$item}) {                          if ($info{$item}) {
                             $tokenextras .= '&'.$item.'='.&escape($info{$item});                              $tokenextras .= '&'.$item.'='.&escape($info{$item});
                         }                          }
Line 480  sub handler { Line 520  sub handler {
                     $tokentype = 'link';                      $tokentype = 'link';
                     last;                      last;
                 }                  }
               } elsif ($env{'form.display'} && ($env{'form.firsturl'} eq '/adm/email')) {
                   if (($env{'form.mailrecip'}) ||
                       ($env{'form.username'} =~ /^$match_username$/) && ($env{'form.domain'} =~ /^$match_domain$/)) {
                       $tokenextras .= '&'.$name.'='.&escape($env{'form.display'});
                       if ($env{'form.mailrecip'}) {
                           $tokenextras .= '&mailrecip='.&escape($env{'form.mailrecip'});
                       } else {
                           $tokenextras .= '&mailrecip='.&escape($env{'form.username'}.':'.$env{'form.domain'});
                       }
                   }
             } else {              } else {
                 $tokenextras .= '&'.$name.'='.&escape($env{'form.'.$name});                  $tokenextras .= '&'.$name.'='.&escape($env{'form.'.$name});
                 if (($name eq 'linkkey') || ($name eq 'linkprot')) {                  if (($name eq 'linkkey') || ($name eq 'linkprot')) {
Line 1216  sub redirect_page { Line 1266  sub redirect_page {
                 $args->{'only_body'} = 1;                  $args->{'only_body'} = 1;
             } elsif ($env{'form.linkprot'}) {              } elsif ($env{'form.linkprot'}) {
                 $link_info{'linkprot'} = $env{'form.linkprot'};                  $link_info{'linkprot'} = $env{'form.linkprot'};
                 foreach my $item ('linkprotuser','linkprotexit') {                  foreach my $item ('linkprotuser','linkprotexit','linkprotpbid','linkprotpburl') {
                     if ($env{'form.'.$item}) {                      if ($env{'form.'.$item}) {
                         $link_info{$item} = $env{'form.'.$item};                          $link_info{$item} = $env{'form.'.$item};
                     }                      }
Line 1256  sub redirect_page { Line 1306  sub redirect_page {
         }          }
         $url .= $querystring;          $url .= $querystring;
     }      }
     $args->{'redirect'} = [0,$url];      $args->{'redirect'} = [0,$url,'','',1];
     my $start_page = &Apache::loncommon::start_page('Switching Server ...',undef,$args);      my $start_page = &Apache::loncommon::start_page('Switching Server ...',undef,$args);
     my $end_page   = &Apache::loncommon::end_page();      my $end_page   = &Apache::loncommon::end_page();
     return $start_page.$end_page;      return $start_page.$end_page;

Removed from v.1.158.2.13.2.7  
changed lines
  Added in v.1.158.2.13.2.11


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