Diff for /loncom/auth/lonauth.pm between versions 1.156 and 1.157

version 1.156, 2018/12/26 20:10:21 version 1.157, 2019/01/27 16:02:43
Line 302  sub failed { Line 302  sub failed {
         my $firsturl = &Apache::loncommon::cleanup_html($form->{firsturl});          my $firsturl = &Apache::loncommon::cleanup_html($form->{firsturl});
         if ($firsturl ne '') {          if ($firsturl ne '') {
             $retry .= (($retry=~/\?/)?'&':'?').'firsturl='.$firsturl;              $retry .= (($retry=~/\?/)?'&':'?').'firsturl='.$firsturl;
               if ($firsturl =~ m{^/tiny/$match_domain/\w+$}) {
                   unless (exists($form->{linkprot})) {
                       if (exists($form->{linkkey})) {
                           $retry .= 'linkkey='.$form->{linkkey};
                       }
                   }
               }
         }          }
     }      }
     if (exists($form->{linkprot})) {      if (exists($form->{linkprot})) {
Line 374  sub handler { Line 381  sub handler {
             my $dest = '/adm/roles';              my $dest = '/adm/roles';
             if ($env{'form.firsturl'} ne '') {              if ($env{'form.firsturl'} ne '') {
                 $dest = $env{'form.firsturl'};                  $dest = $env{'form.firsturl'};
                   if ($env{'form.firsturl'} =~ m{^/tiny/$match_domain/\w+$}) {
                       &Apache::lonnet::appenv({'request.deeplink.login' => $env{'form.firsturl'}});
                   }
             }              }
             $r->print(              $r->print(
                $start_page                 $start_page
Line 445  sub handler { Line 455  sub handler {
         return OK;          return OK;
     }      }
   
     my ($key,$firsturl,$rolestr,$symbstr,$iptokenstr,$linkprotstr)=split(/&/,$tmpinfo);      my ($key,$firsturl,$rolestr,$symbstr,$iptokenstr,$linkstr)=split(/&/,$tmpinfo);
     if ($rolestr) {      if ($rolestr) {
         $rolestr = &unescape($rolestr);          $rolestr = &unescape($rolestr);
     }      }
Line 455  sub handler { Line 465  sub handler {
     if ($iptokenstr) {      if ($iptokenstr) {
         $iptokenstr = &unescape($iptokenstr);          $iptokenstr = &unescape($iptokenstr);
     }      }
     if ($linkprotstr) {      if ($linkstr) {
         $linkprotstr = &unescape($linkprotstr);          $linkstr = &unescape($linkstr);
     }      }
     if ($firsturl =~ m{^/tiny/$match_domain/\w+$}) {      if ($firsturl =~ m{^/tiny/$match_domain/\w+$}) {
         $form{'firsturl'} = $firsturl;          $form{'firsturl'} = $firsturl;
Line 470  sub handler { Line 480  sub handler {
     if ($iptokenstr =~ /^iptoken=/) {      if ($iptokenstr =~ /^iptoken=/) {
         (undef,$form{'iptoken'}) = split('=',$iptokenstr);          (undef,$form{'iptoken'}) = split('=',$iptokenstr);
     }      }
     if ($linkprotstr =~ /^linkprot=/) {      if ($linkstr =~ /^linkprot=/) {
         (undef,$form{'linkprot'}) = split('=',$linkprotstr);          (undef,$form{'linkprot'}) = split('=',$linkstr);
       } elsif ($linkstr =~ /^linkkey=/) {
           (undef,$form{'linkkey'}) = split('=',$linkstr);
     }      }
   
     my $upass = $ENV{HTTPS} ? $form{'upass0'}      my $upass = $ENV{HTTPS} ? $form{'upass0'}
Line 655  sub handler { Line 667  sub handler {
             }              }
             if ($form{'linkprot'}) {              if ($form{'linkprot'}) {
                 $env{'request.linkprot'} = $form{'linkprot'};                  $env{'request.linkprot'} = $form{'linkprot'};
               } elsif ($form{'firsturl'} =~ m{^/tiny/$match_domain/\w+$}) {
                   if ($form{'linkkey'}) {
                       $env{'request.linkkey'} = $form{'linkkey'};
                   }
                   $env{'request.deeplink.login'} = $form{'firsturl'};
             }              }
             $r->internal_redirect($switchto);              $r->internal_redirect($switchto);
         } else {          } else {
Line 679  sub handler { Line 696  sub handler {
                 }                  }
                 if ($form{'linkprot'}) {                  if ($form{'linkprot'}) {
                     $env{'request.linkprot'} = $form{'linkprot'};                      $env{'request.linkprot'} = $form{'linkprot'};
                   } elsif ($form{'firsturl'} =~ m{^/tiny/$match_domain/\w+$}) {
                       if ($form{'linkkey'}) {
                           $env{'request.linkkey'} = $form{'linkkey'};
                       }
                       $env{'request.deeplink.login'} = $form{'firsturl'};
   
                 }                  }
                 $r->internal_redirect($switchto);                  $r->internal_redirect($switchto);
             } else {              } else {
Line 711  sub handler { Line 734  sub handler {
                          undef,\%form);                           undef,\%form);
                 if ($form{'linkprot'}) {                  if ($form{'linkprot'}) {
                     $env{'request.linkprot'} = $form{'linkprot'};                      $env{'request.linkprot'} = $form{'linkprot'};
                   } elsif ($form{'firsturl'} =~ m{^/tiny/$match_domain/\w+$}) {
                       if ($form{'linkkey'}) {
                           $env{'request.linkkey'} = $form{'linkkey'};
                       }
                       $env{'request.deeplink.login'} = $form{'firsturl'};
                 }                  }
                 $r->internal_redirect('/adm/switchserver?otherserver='.$unloaded.'&origurl='.$firsturl);                  $r->internal_redirect('/adm/switchserver?otherserver='.$unloaded.'&origurl='.$firsturl);
                 return OK;                  return OK;
Line 726  sub handler { Line 754  sub handler {
                 $extra_env = {'user.linkprotector' => $linkprotector,                  $extra_env = {'user.linkprotector' => $linkprotector,
                               'user.linkproturi'   => $uri,};                                'user.linkproturi'   => $uri,};
             }              }
           } elsif ($form{'firsturl'} =~ m{^/tiny/$match_domain/\w+$}) {
               if ($form{'linkkey'}) {
                   $extra_env = {'user.deeplinkkey' => $form{'linkkey'},
                                 'user.keyedlinkuri' => $form{'firsturl'},
                                 'request.deeplink.login' => $form{'firsturl'}};
               } else {
                   $extra_env = {'request.deeplink.login' => $form{'firsturl'}};
               }
         }          }
         &success($r,$form{'uname'},$form{'udom'},$authhost,$firsturl,$extra_env,          &success($r,$form{'uname'},$form{'udom'},$authhost,$firsturl,$extra_env,
                  \%form);                   \%form);
Line 793  sub check_can_host { Line 829  sub check_can_host {
                      $form);                       $form);
             if ($form->{'linkprot'}) {              if ($form->{'linkprot'}) {
                 $env{'request.linkprot'} = $form->{'linkprot'};                  $env{'request.linkprot'} = $form->{'linkprot'};
               } elsif ($form->{'firsturl'} =~ m{^/tiny/$match_domain/\w+$}) {
                   if ($form->{'linkkey'}) {
                       $env{'request.linkkey'} = $form->{'linkkey'};
                   }
                   $env{'request.deeplink.login'} = $form->{'firsturl'};
             }              }
             my ($otherserver) = &Apache::lonnet::choose_server($udom);              my ($otherserver) = &Apache::lonnet::choose_server($udom);
             $r->internal_redirect('/adm/switchserver?otherserver='.$otherserver);              $r->internal_redirect('/adm/switchserver?otherserver='.$otherserver);

Removed from v.1.156  
changed lines
  Added in v.1.157


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