Diff for /loncom/auth/lonlogin.pm between versions 1.158.2.13.2.3 and 1.158.2.13.2.4

version 1.158.2.13.2.3, 2022/02/24 16:43:39 version 1.158.2.13.2.4, 2022/05/29 12:44:12
Line 428  sub handler { Line 428  sub handler {
     if ($uextkey>2147483647) { $uextkey-=4294967296; }      if ($uextkey>2147483647) { $uextkey-=4294967296; }
   
 # -------------------------------------------------------- Store away log token  # -------------------------------------------------------- Store away log token
     my ($tokenextras,$tokentype);      my ($tokenextras,$tokentype,$linkprot_for_login);
     my @names = ('role','symb','iptoken','ltoken','linkprot','linkkey');      my @names = ('role','symb','iptoken','ltoken','linkprot','linkkey');
     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') {
                 my %info = &Apache::lonnet::tmpget($env{'form.'.$name});                  my %info = &Apache::lonnet::tmpget($env{'form.'.$name});
                 if ($info{'linkprot'}) {                  if ($info{'linkprot'}) {
                       $linkprot_for_login = $info{'linkprot'};
                     $tokenextras .= '&linkprot='.&escape($info{'linkprot'});                      $tokenextras .= '&linkprot='.&escape($info{'linkprot'});
                     $tokentype = 'link';                      $tokentype = 'link';
                     last;                      last;
Line 442  sub handler { Line 443  sub handler {
             } 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')) {
                       if (($env{'form.retry'}) && (!$env{'form.ltoken'}) && ($name eq 'linkprot')) {
                           $linkprot_for_login = $env{'form.linkprot'};
                       }
                     $tokentype = 'link';                      $tokentype = 'link';
                 }                  }
             }              }
Line 893  ENDSAML Line 897  ENDSAML
             delete($env{'form.ltoken'});              delete($env{'form.ltoken'});
         }          }
     }      }
       my $in_frame_js;
       if ($linkprot_for_login) {
           my ($linkprotector,$linkproturi) = split(/:/,$linkprot_for_login,2);
           if (($linkprotector =~ /^\d+(c|d)$/) && ($linkproturi =~ m{^/+tiny/+$LONCAPA::match_domain/+\w+$})) {
               my $set_target;
               if ($env{'form.retry'}) {
                   if ($linkproturi eq $env{'form.firsturl'}) {
                       $set_target = "    document.server.target = '_self';";
                   }
               } else {
                   $set_target = <<ENDTARG;
       var linkproturi = '$linkproturi';
       var path = document.location.pathname.replace( new RegExp('^/adm/launch'),'');
       if (linkproturi == path) {
           document.server.target = '_self';
       }
   ENDTARG
               }
               $in_frame_js = <<ENDJS;
   <script type="text/javascript">
   // <![CDATA[
   if ((window.self !== window.top) && (document.server.target != '_self')) {
       $set_target
   }
   // ]]>
   </script>
   ENDJS
           }
       }
   
     $r->print(<<ENDLOGIN);      $r->print(<<ENDLOGIN);
 <div style="display:$stdauthformstyle;" id="LC_standard_login">  <div style="display:$stdauthformstyle;" id="LC_standard_login">
Line 993  $versionrow Line 1026  $versionrow
     <br style="clear:both;" />      <br style="clear:both;" />
  </div>   </div>
   
   $in_frame_js
 <script type="text/javascript">  <script type="text/javascript">
 // <![CDATA[  // <![CDATA[
 // the if prevents the script error if the browser can not handle this  // the if prevents the script error if the browser can not handle this

Removed from v.1.158.2.13.2.3  
changed lines
  Added in v.1.158.2.13.2.4


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