Diff for /loncom/auth/lonacc.pm between versions 1.159.2.21.2.3 and 1.205

version 1.159.2.21.2.3, 2022/08/30 11:58:44 version 1.205, 2022/06/30 21:04:13
Line 160  sub get_posted_cgi { Line 160  sub get_posted_cgi {
                         if (length($value) == 1) {                          if (length($value) == 1) {
                             $value=~s/[\r\n]$//;                              $value=~s/[\r\n]$//;
                         }                          }
                     }                      } 
                     if ($fname =~ /\.(xls|doc|ppt)(x|m)$/i) {                      if ($fname =~ /\.(xls|doc|ppt)(x|m)$/i) {
                         $value=~s/[\r\n]$//;                          $value=~s/[\r\n]$//;
                     }                      }
Line 204  sub get_posted_cgi { Line 204  sub get_posted_cgi {
  $fname='';   $fname='';
  $fmime='';   $fmime='';
     }      }
                       if ($i<$#lines && $lines[$i+1]=~/^Content\-Type\:\s*([\w\-\/]+)/i) {
                           # TODO: something with $1 !
                           $i++;
                       }
                       if ($i<$#lines && $lines[$i+1]=~/^Content\-transfer\-encoding\:\s*([\w\-\/]+)/i) {
                           # TODO: something with $1 !
                           $i++;
                       }
     $i++;      $i++;
  }   }
     } else {      } else {
Line 306  sub sso_login { Line 314  sub sso_login {
     my $query = $r->args;      my $query = $r->args;
     my %form;      my %form;
     if ($query) {      if ($query) {
   
         my @items = ('role','symb','iptoken','origurl','ttoken',          my @items = ('role','symb','iptoken','origurl','ttoken',
                      'ltoken','linkkey','logtoken','sso','lcssowin');                       'ltoken','linkkey','logtoken','sso');
         &Apache::loncommon::get_unprocessed_cgi($query,\@items);          &Apache::loncommon::get_unprocessed_cgi($query,\@items);
         foreach my $item (@items) {          foreach my $item (@items) {
             if (defined($env{'form.'.$item})) {              if (defined($env{'form.'.$item})) {
Line 458  sub sso_login { Line 465  sub sso_login {
                            linkprotuser => $linkprotuser,                             linkprotuser => $linkprotuser,
                            linkprotexit => $linkprotexit,                             linkprotexit => $linkprotexit,
                        );                         );
             if ($env{'form.lcssowin'}) {  
                 $data{'lcssowin'} = $env{'form.lcssowin'};  
             }  
             my $token = &Apache::lonnet::tmpput(\%data,$r->dir_config('lonHostID'),'link');              my $token = &Apache::lonnet::tmpput(\%data,$r->dir_config('lonHostID'),'link');
             unless (($token eq 'con_lost') || ($token eq 'refused') || ($token =~ /^error:/) ||              unless (($token eq 'con_lost') || ($token eq 'refused') || ($token =~ /^error:/) ||
                     ($token eq 'unknown_cmd') || ($token eq 'no_such_host')) {                      ($token eq 'unknown_cmd') || ($token eq 'no_such_host')) {
Line 542  sub sso_login { Line 546  sub sso_login {
             if ($otherserver ne '') {              if ($otherserver ne '') {
                 $redirecturl .= '?otherserver='.$otherserver;                  $redirecturl .= '?otherserver='.$otherserver;
             }              }
             if ($form{'lcssowin'}) {  
                 $redirecturl .= (($redirecturl=~/\?/)?'&':'?') . 'lcssowin=1';  
             }  
     $r->internal_redirect($redirecturl);      $r->internal_redirect($redirecturl);
     $r->set_handlers('PerlHandler'=> undef);      $r->set_handlers('PerlHandler'=> undef);
  } else {   } else {
     # need to login them in, so generate the need data that      # need to login them in, so generate the need data that
     # migrate expects to do login      # migrate expects to do login
             my $ip = &Apache::lonnet::get_requestor_ip($r);      my $ip = &Apache::lonnet::get_requestor_ip($r);
     my %info=('ip'        => $ip,      my %info=('ip'        => $ip,
       'domain'    => $domain,        'domain'    => $domain,
       'username'  => $user,        'username'  => $user,
       'server'    => $r->dir_config('lonHostID'),        'server'    => $r->dir_config('lonHostID'),
       'sso.login' => 1        'sso.login' => 1
       );        );
             foreach my $item ('role','symb','iptoken','origurl','lcssowin') {              foreach my $item ('role','symb','iptoken','origurl') {
                 if (exists($form{$item})) {                  if (exists($form{$item})) {
                     $info{$item} = $form{$item};                      $info{$item} = $form{$item};
                 } elsif ($sessiondata{$item} ne '') {                  } elsif ($sessiondata{$item} ne '') {
Line 623  sub sso_login { Line 624  sub sso_login {
             $r->subprocess_env->set('SSOUserDomain' => $domain);              $r->subprocess_env->set('SSOUserDomain' => $domain);
             if (grep(/^sso$/,@cancreate)) {              if (grep(/^sso$/,@cancreate)) {
 #FIXME - need to preserve origurl, role and symb, or linkprot or linkkey for use after account  #FIXME - need to preserve origurl, role and symb, or linkprot or linkkey for use after account
 # creation. If lcssowin is 1, createaccount needs to close pop-up and display in main window.  # creation
                 $r->set_handlers('PerlHandler'=> [\&Apache::createaccount::handler]);                  $r->set_handlers('PerlHandler'=> [\&Apache::createaccount::handler]);
                 $r->handler('perl-script');                  $r->handler('perl-script');
             } else {              } else {
Line 721  sub handler { Line 722  sub handler {
             }              }
         } elsif ($env{'request.course.id'} &&          } elsif ($env{'request.course.id'} &&
                  (($requrl =~ m{^/adm/$match_domain/$match_username/aboutme$}) ||                   (($requrl =~ m{^/adm/$match_domain/$match_username/aboutme$}) ||
                   ($requrl =~ m{^/public/$cdom/$cnum/syllabus$}))) {                    ($requrl eq "/public/$cdom/$cnum/syllabus") ||
                     ($requrl =~ m{^/adm/$cdom/$cnum/\d+/ext\.tool$}))) {
             my $query = $r->args;              my $query = $r->args;
             if ($query) {              if ($query) {
                 foreach my $pair (split(/&/,$query)) {                  foreach my $pair (split(/&/,$query)) {
Line 743  sub handler { Line 745  sub handler {
             my $lonhost = &Apache::lonnet::host_from_dns($hostname);              my $lonhost = &Apache::lonnet::host_from_dns($hostname);
             if ($lonhost) {              if ($lonhost) {
                 my $actual = &Apache::lonnet::absolute_url($hostname,1,1);                  my $actual = &Apache::lonnet::absolute_url($hostname,1,1);
                   my $exphostname = &Apache::lonnet::hostname($lonhost);
                 my $expected = $Apache::lonnet::protocol{$lonhost}.'://'.$hostname;                  my $expected = $Apache::lonnet::protocol{$lonhost}.'://'.$hostname;
                 unless ($actual eq $expected) {                  unless ($actual eq $expected) {
                     $env{'request.use_absolute'} = $expected;                      $env{'request.use_absolute'} = $expected;
Line 934  sub handler { Line 937  sub handler {
                 &Apache::blockedaccess::setup_handler($r);                  &Apache::blockedaccess::setup_handler($r);
                 return OK;                  return OK;
             }              }
         } elsif ($check_access) {           } elsif ($check_access) {
             if ($handle eq '') {              if ($handle eq '') {
                 unless ($access eq 'F') {                  unless ($access eq 'F') {
                     if ($requrl =~ m{^/res/$match_domain/$match_username/}) {                      if ($requrl =~ m{^/res/$match_domain/$match_username/}) {
Line 1134  sub handler { Line 1137  sub handler {
                                 my $mapsymb = &Apache::lonnet::symbread($map);                                  my $mapsymb = &Apache::lonnet::symbread($map);
                                 ($map,$mid,$murl)=&Apache::lonnet::decode_symb($mapsymb);                                  ($map,$mid,$murl)=&Apache::lonnet::decode_symb($mapsymb);
                             }                              }
                             &Apache::lonnet::symblist($map,$murl =>[$murl,$mid],      &Apache::lonnet::symblist($map,$murl =>[$murl,$mid],
                                                       'last_known' =>[$murl,$mid]);        'last_known' =>[$murl,$mid]);
                         }                          }
     }      }
  }   }
Line 1188  sub handler { Line 1191  sub handler {
 # ------------------------------------ See if this is a viewable portfolio file  # ------------------------------------ See if this is a viewable portfolio file
     if (&Apache::lonnet::is_portfolio_url($requrl)) {      if (&Apache::lonnet::is_portfolio_url($requrl)) {
         my $clientip = &Apache::lonnet::get_requestor_ip($r);          my $clientip = &Apache::lonnet::get_requestor_ip($r);
  my $access=&Apache::lonnet::allowed('bre',$requrl,undef,undef,$clientip);          my $access=&Apache::lonnet::allowed('bre',$requrl,undef,undef,$clientip);
  if ($access eq 'A') {   if ($access eq 'A') {
     &Apache::restrictedaccess::setup_handler($r);      &Apache::restrictedaccess::setup_handler($r);
     return OK;      return OK;

Removed from v.1.159.2.21.2.3  
changed lines
  Added in v.1.205


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