Diff for /loncom/auth/lonacc.pm between versions 1.207 and 1.210

version 1.207, 2022/09/17 23:38:50 version 1.210, 2023/08/28 20:40:00
Line 333  sub sso_login { Line 333  sub sso_login {
         }          }
     }      }
   
     my ($linkprot,$linkprotuser,$linkprotexit,$linkkey,$deeplinkurl);      my ($linkprot,$linkprotuser,$linkprotexit,$linkkey,$deeplinkurl,
           $linkprotpbid,$linkprotpburl);
   
 #  #
 # If Shibboleth auth is in use, and a dual SSO and non-SSO login page  # If Shibboleth auth is in use, and a dual SSO and non-SSO login page
Line 373  sub sso_login { Line 374  sub sso_login {
             $linkprot = $info{'linkprot'};              $linkprot = $info{'linkprot'};
             $linkprotuser = $info{'linkprotuser'};              $linkprotuser = $info{'linkprotuser'};
             $linkprotexit = $info{'linkprotexit'};              $linkprotexit = $info{'linkprotexit'};
               $linkprotpbid = $info{'linkprotpbid'};
               $linkprotpburl = $info{'linkprotpburl'};
         } elsif ($info{'linkkey'} ne '') {          } elsif ($info{'linkkey'} ne '') {
             $linkkey = $info{'linkkey'};              $linkkey = $info{'linkkey'};
         }          }
Line 401  sub sso_login { Line 404  sub sso_login {
                 $linkprot = $form{'linkprot'};                  $linkprot = $form{'linkprot'};
                 $linkprotuser = $form{'linkprotuser'};                  $linkprotuser = $form{'linkprotuser'};
                 $linkprotexit = $form{'linkprotexit'};                  $linkprotexit = $form{'linkprotexit'};
                   $linkprotpbid = $form{'linkprotpbid'};
                   $linkprotpburl = $form{'linkprotpburl'};
             } elsif ($form{'linkkey'} ne '') {              } elsif ($form{'linkkey'} ne '') {
                 $linkkey = $form{'linkkey'};                  $linkkey = $form{'linkkey'};
             }              }
Line 430  sub sso_login { Line 435  sub sso_login {
                 $linkprot = $form{'linkprot'};                  $linkprot = $form{'linkprot'};
                 $linkprotuser = $form{'linkprotuser'};                  $linkprotuser = $form{'linkprotuser'};
                 $linkprotexit = $form{'linkprotexit'};                  $linkprotexit = $form{'linkprotexit'};
                   $linkprotpbid = $form{'linkprotpbid'};
                   $linkprotpburl = $form{'linkprotpburl'};
             } elsif ($form{'linkkey'} ne '') {              } elsif ($form{'linkkey'} ne '') {
                 $linkkey = $form{'linkkey'};                  $linkkey = $form{'linkkey'};
             }              }
Line 444  sub sso_login { Line 451  sub sso_login {
             if ($link_info{'linkprotexit'} ne '') {              if ($link_info{'linkprotexit'} ne '') {
                 $linkprotexit = $link_info{'linkprotexit'};                  $linkprotexit = $link_info{'linkprotexit'};
             }              }
               if ($link_info{'linkprotpbid'} ne '') {
                   $linkprotpbid = $link_info{'linkprotpbid'};
               }
               if ($link_info{'linkprotpburl'} ne '') {
                   $linkprotpburl = $link_info{'linkprotpburl'};
               }
         }          }
         my $delete = &Apache::lonnet::tmpdel($form{'ltoken'});          my $delete = &Apache::lonnet::tmpdel($form{'ltoken'});
         delete($form{'ltoken'});          delete($form{'ltoken'});
Line 466  sub sso_login { Line 479  sub sso_login {
                            linkprot => $linkprot,                             linkprot => $linkprot,
                            linkprotuser => $linkprotuser,                             linkprotuser => $linkprotuser,
                            linkprotexit => $linkprotexit,                             linkprotexit => $linkprotexit,
                              linkprotpbid => $linkprotpbid,
                              linkprotpburl => $linkprotpburl,
                        );                         );
             if ($env{'form.lcssowin'}) {              if ($env{'form.lcssowin'}) {
                 $data{'lcssowin'} = $env{'form.lcssowin'};                  $data{'lcssowin'} = $env{'form.lcssowin'};
Line 538  sub sso_login { Line 553  sub sso_login {
                     if ($linkprotexit ne '') {                      if ($linkprotexit ne '') {
                         $env{'request.linkprotexit'} = $linkprotexit;                          $env{'request.linkprotexit'} = $linkprotexit;
                     }                      }
                       if ($linkprotpbid ne '') {
                           $env{'request.linkprotpbid'} = $linkprotpbid;
                       }
                       if ($linkprotpburl ne '') {
                           $env{'request.linkprotpburl'} = $linkprotpburl;
                       }
                 } elsif ($linkkey ne '') {                  } elsif ($linkkey ne '') {
                     $env{'request.linkkey'} = $linkkey;                      $env{'request.linkkey'} = $linkkey;
                 }                  }
Line 598  sub sso_login { Line 619  sub sso_login {
                     if ($linkprotexit ne '') {                      if ($linkprotexit ne '') {
                         $info{'linkprotexit'} = $linkprotexit;                          $info{'linkprotexit'} = $linkprotexit;
                     }                      }
                       if ($linkprotpbid ne '') {
                           $info{'linkprotpbid'} = $linkprotpbid;
                       }
                       if ($linkprotpburl ne '') {
                           $info{'linkprotpburl'} = $linkprotpburl;
                       }
                 } elsif ($linkkey ne '') {                  } elsif ($linkkey ne '') {
                     $info{'linkkey'} = $linkkey;                      $info{'linkkey'} = $linkkey;
                 }                  }
Line 824  sub handler { Line 851  sub handler {
                                 linkprot => $info{'linkprot'},                                  linkprot => $info{'linkprot'},
                                 linkprotuser => $info{'linkprotuser'},                                  linkprotuser => $info{'linkprotuser'},
                                 linkprotexit => $info{'linkprotexit'},                                  linkprotexit => $info{'linkprotexit'},
                                   linkprotpbid => $info{'linkprotpbid'},
                                   linkprotpburl => $info{'linkprotpburl'},
                             );                              );
                         } elsif ($info{'ltoken'} ne '') {                          } elsif ($info{'ltoken'} ne '') {
                             my %ltoken_info = &Apache::lonnet::tmpget($info{'ltoken'});                              my %ltoken_info = &Apache::lonnet::tmpget($info{'ltoken'});
Line 834  sub handler { Line 863  sub handler {
                                     linkprot => $ltoken_info{'linkprot'},                                      linkprot => $ltoken_info{'linkprot'},
                                     linkprotuser => $ltoken_info{'linkprotuser'},                                      linkprotuser => $ltoken_info{'linkprotuser'},
                                     linkprotexit => $ltoken_info{'linkprotexit'},                                      linkprotexit => $ltoken_info{'linkprotexit'},
                                       linkprotpbid => $ltoken_info{'linkprotpbid'},
                                       linkprotpburl => $ltoken_info{'linkprotpburl'},
                                 );                                  );
                             }                              }
                         }                          }
Line 860  sub handler { Line 891  sub handler {
                 return FORBIDDEN;                  return FORBIDDEN;
             }              }
             return OK;              return OK;
           } elsif (($env{'request.course.id'}) &&
                    (&Apache::lonnet::allowed('mdc',$env{'request.course.id'})) &&
                    ($requrl=~m{^(/daxeopen|)(/uploaded/$cdom/$cnum/(?:docs|supplemental)/(?:default|\d+)/\d+/)([^/]+|)$})) {
               my ($daxe,$path,$file) = ($1,$2,$3);
               my $referrer;
               unless ($daxe) {
                   $referrer = $r->headers_in->{'Referer'};
               }
               if (($daxe) || ($referrer =~ m{\Qfile=/daxeopen$path\E})) {
                   return OK;
               }
         }          }
 # ---------------------------------------------------------------- Check access  # ---------------------------------------------------------------- Check access
  my $now = time;   my $now = time;
Line 933  sub handler { Line 975  sub handler {
                 }                  }
             } else {              } else {
                 my $nodeeplinkcheck;                  my $nodeeplinkcheck;
                 if (($check_access) && ($requrl =~ /\.(sequence|page)$/)) {                  if ($check_access) {
                     unless ($env{'form.navmap'}) {                      if ($requrl =~ m{^/daxeopen/priv/}) {  
                         if ($r->args ne '') {                          $nodeeplinkcheck = 1;
                             &Apache::loncommon::get_unprocessed_cgi($r->args,['navmap']);                      } elsif ($requrl =~ /\.(sequence|page)$/) {
                             unless ($env{'form.navmap'}) {                          unless ($env{'form.navmap'}) {
                                 $nodeeplinkcheck = 1;                              if ($r->args ne '') {
                                   &Apache::loncommon::get_unprocessed_cgi($r->args,['navmap']);
                                   unless ($env{'form.navmap'}) {
                                       $nodeeplinkcheck = 1;
                                   }
                             }                              }
                         }                          }
                     }                      }
                 }                  }
                 my $clientip = &Apache::lonnet::get_requestor_ip($r);                  my $clientip = &Apache::lonnet::get_requestor_ip($r);
                 $access=&Apache::lonnet::allowed('bre',$requrl,'','',$clientip,'','',$nodeeplinkcheck);                  $access=&Apache::lonnet::allowed('bre',$requrl,'','',$clientip,'','',$nodeeplinkcheck);
                   if (($requrl =~ m{^/daxeopen/priv/}) && ($access eq '')) {
                       $env{'request.editurl'}=$requrl;
                   }
             }              }
         }          }
         if ($check_block) {          if ($check_block) {

Removed from v.1.207  
changed lines
  Added in v.1.210


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