Diff for /loncom/auth/lonauth.pm between versions 1.129 and 1.135

version 1.129, 2013/12/20 14:54:34 version 1.135, 2014/10/04 02:59:32
Line 108  sub success { Line 108  sub success {
             }              }
             $desturl = &HTML::Entities::encode($desturl,'"<>&');              $desturl = &HTML::Entities::encode($desturl,'"<>&');
             $destsymb = &HTML::Entities::encode($destsymb,'"<>&');              $destsymb = &HTML::Entities::encode($destsymb,'"<>&');
             $destination .= '&destinationurl='.$desturl.              $destination .= 'destinationurl='.$desturl.
                             '&destsymb='.$destsymb;                              '&destsymb='.$destsymb;
         } else {          } else {
             $destsymb = &HTML::Entities::encode($destsymb,'"<>&');              $destsymb = &HTML::Entities::encode($destsymb,'"<>&');
             $destination .= '&destinationurl='.$destsymb;              $destination .= 'destinationurl='.$destsymb;
         }          }
     }      }
     if ($destination =~ m{^/adm/roles}) {      if ($destination =~ m{^/adm/roles}) {
Line 155  $loginhelp Line 155  $loginhelp
 $continuelink  $continuelink
 $end_page  $end_page
 ENDSUCCESS  ENDSUCCESS
       return;
 }  }
   
 # --------------------------------------------------------------- Failed login!  # --------------------------------------------------------------- Failed login!
Line 173  sub failed { Line 174  sub failed {
     my $udom = &Apache::loncommon::cleanup_html($form->{'udom'});      my $udom = &Apache::loncommon::cleanup_html($form->{'udom'});
     if (&Apache::lonnet::domain($udom,'description') eq '') {      if (&Apache::lonnet::domain($udom,'description') eq '') {
         undef($udom);          undef($udom);
     }        }
     my $retry = '/adm/login';      my $retry = '/adm/login';
     if ($uname eq $form->{'uname'}) {      if ($uname eq $form->{'uname'}) {
         $retry .= '?username='.$uname;          $retry .= '?username='.$uname;
Line 183  sub failed { Line 184  sub failed {
     }      }
     if (exists($form->{role})) {      if (exists($form->{role})) {
         my $role = &Apache::loncommon::cleanup_html($form->{role});          my $role = &Apache::loncommon::cleanup_html($form->{role});
         if ($role ne '') {           if ($role ne '') {
             $retry .= (($retry=~/\?/)?'&amp;':'?').'role='.$role;              $retry .= (($retry=~/\?/)?'&amp;':'?').'role='.$role;
         }          }
     }      }
Line 196  sub failed { Line 197  sub failed {
     my $end_page = &Apache::loncommon::end_page();      my $end_page = &Apache::loncommon::end_page();
     &Apache::loncommon::content_type($r,'text/html');      &Apache::loncommon::content_type($r,'text/html');
     $r->send_http_header;      $r->send_http_header;
       my @actions =
            (&mt('Please [_1]log in again[_2].','<a href="'.$retry.'">','</a>'));
     my $loginhelp = &loginhelpdisplay($udom);      my $loginhelp = &loginhelpdisplay($udom);
     if ($loginhelp) {      if ($loginhelp) {
         $loginhelp = '<p><a href="'.$loginhelp.'">'.&mt('Login problems?').'</a></p>';          push(@actions, '<a href="'.$loginhelp.'">'.&mt('Login problems?').'</a>');
     }      }
       #FIXME: link to helpdesk might be added here
   
     $r->print(      $r->print(
        $start_page         $start_page
       .'<h1>'.&mt('Sorry ...').'</h1>'        .'<h2>'.&mt('Sorry ...').'</h2>'
       .'<p class="LC_warning">'.&mt($message).'</p>'        .&Apache::lonhtmlcommon::confirm_success(&mt($message),1).'<br /><br />'
       .'<p>'.&mt('Please [_1]log in again[_2].','<a href="'.$retry.'">','</a>')        .&Apache::lonhtmlcommon::actionbox(\@actions)
       .'</p>'  
       .$loginhelp  
       .$end_page        .$end_page
     );      );
  }   }
Line 307  sub handler { Line 309  sub handler {
     my $tmpinfo=Apache::lonnet::reply('tmpget:'.$form{'logtoken'},      my $tmpinfo=Apache::lonnet::reply('tmpget:'.$form{'logtoken'},
                                       $form{'serverid'});                                        $form{'serverid'});
   
     my %sessiondata;  
     if ($form{'iptoken'}) {  
         %sessiondata = &Apache::lonnet::tmpget($form{'iptoken'});  
         my $delete = &Apache::lonnet::tmpdel($form{'token'});  
     }  
   
     if (($tmpinfo=~/^error/) || ($tmpinfo eq 'con_lost') ||       if (($tmpinfo=~/^error/) || ($tmpinfo eq 'con_lost') || 
         ($tmpinfo eq 'no_such_host')) {          ($tmpinfo eq 'no_such_host')) {
  &failed($r,'Information needed to verify your login information is missing, inaccessible or expired.',\%form);   &failed($r,'Information needed to verify your login information is missing, inaccessible or expired.',\%form);
Line 332  sub handler { Line 328  sub handler {
         return OK;          return OK;
     }      }
   
     my ($key,$firsturl,$rolestr,$symbstr)=split(/&/,$tmpinfo);      my ($key,$firsturl,$rolestr,$symbstr,$iptokenstr)=split(/&/,$tmpinfo);
     if ($rolestr) {      if ($rolestr) {
         $rolestr = &unescape($rolestr);          $rolestr = &unescape($rolestr);
     }      }
     if ($symbstr) {      if ($symbstr) {
         $symbstr= &unescape($symbstr);          $symbstr= &unescape($symbstr);
     }      }
       if ($iptokenstr) {
           $iptokenstr = &unescape($iptokenstr);
       }
     if ($rolestr =~ /^role=/) {      if ($rolestr =~ /^role=/) {
         (undef,$form{'role'}) = split('=',$rolestr);          (undef,$form{'role'}) = split('=',$rolestr);
     }      }
     if ($symbstr =~ /^symb=/) {       if ($symbstr =~ /^symb=/) { 
         (undef,$form{'symb'}) = split('=',$symbstr);          (undef,$form{'symb'}) = split('=',$symbstr);
     }      }
       if ($iptokenstr =~ /^iptoken=/) {
           (undef,$form{'iptoken'}) = split('=',$iptokenstr);
       }
   
     my $keybin=pack("H16",$key);      my $keybin=pack("H16",$key);
   
Line 428  sub handler { Line 430  sub handler {
   
     my $hosthere;      my $hosthere;
     if ($form{'iptoken'}) {      if ($form{'iptoken'}) {
           my %sessiondata = &Apache::lonnet::tmpget($form{'iptoken'});
           my $delete = &Apache::lonnet::tmpdel($form{'iptoken'});
         if (($sessiondata{'domain'} eq $form{'udom'}) &&          if (($sessiondata{'domain'} eq $form{'udom'}) &&
             ($sessiondata{'username'} eq $form{'uname'})) {              ($sessiondata{'username'} eq $form{'uname'})) {
             $hosthere = 1;              $hosthere = 1;
Line 471  sub handler { Line 475  sub handler {
         if ($otherserver) {          if ($otherserver) {
             &success($r,$form{'uname'},$form{'udom'},$authhost,'noredirect',undef,              &success($r,$form{'uname'},$form{'udom'},$authhost,'noredirect',undef,
                      \%form);                       \%form);
     $r->internal_redirect('/adm/switchserver?otherserver='.$otherserver.'&origurl='.$firsturl);              my $switchto = '/adm/switchserver?otherserver='.$otherserver;
               if (($firsturl) && ($firsturl ne '/adm/switchserver') && ($firsturl ne '/adm/roles')) {
                   $switchto .= '&origurl='.$firsturl;
               }
               if ($form{'role'}) {
                   $switchto .= '&role='.$form{'role'};
               }
               if ($form{'symb'}) {
                   $switchto .= '&symb='.$form{'symb'};
               }
               $r->internal_redirect($switchto);
         } else {          } else {
             $r->print(&noswitch());              $r->print(&noswitch());
         }          }
Line 482  sub handler { Line 496  sub handler {
             if ($otherserver) {              if ($otherserver) {
                 &success($r,$form{'uname'},$form{'udom'},$authhost,'noredirect',undef,                  &success($r,$form{'uname'},$form{'udom'},$authhost,'noredirect',undef,
                          \%form);                           \%form);
                 $r->internal_redirect('/adm/switchserver?otherserver='.$otherserver.'&origurl='.$firsturl);                  my $switchto = '/adm/switchserver?otherserver='.$otherserver;
                   if (($firsturl) && ($firsturl ne '/adm/switchserver') && ($firsturl ne '/adm/roles')) {
                       $switchto .= '&origurl='.$firsturl;
                   }
                   if ($form{'role'}) {
                       $switchto .= '&role='.$form{'role'};
                   }
                   if ($form{'symb'}) {
                       $switchto .= '&symb='.$form{'symb'};
                   }
                   $r->internal_redirect($switchto);
             } else {              } else {
                 $r->print(&noswitch());                  $r->print(&noswitch());
             }              }

Removed from v.1.129  
changed lines
  Added in v.1.135


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