version 1.72, 2005/11/15 17:55:03
|
version 1.77, 2006/05/31 15:33:39
|
Line 40 use Apache::lonnet;
|
Line 40 use Apache::lonnet;
|
use Apache::lonmenu(); |
use Apache::lonmenu(); |
use Fcntl qw(:flock); |
use Fcntl qw(:flock); |
use Apache::lonlocal; |
use Apache::lonlocal; |
use POSIX qw(strftime); |
|
|
|
my %FORM; |
my %FORM; |
|
|
Line 114 sub success {
|
Line 113 sub success {
|
my %userenv=Apache::lonnet::dump('environment',$domain,$username); |
my %userenv=Apache::lonnet::dump('environment',$domain,$username); |
my ($tmp) = keys(%userenv); |
my ($tmp) = keys(%userenv); |
if ($tmp !~ /^(con_lost|error|no_such_host)/i) { |
if ($tmp !~ /^(con_lost|error|no_such_host)/i) { |
|
# default remote control to off |
|
if ($userenv{'remote'} ne 'on') { $userenv{'remote'} = 'off'; } |
foreach my $key (keys(%userenv)) { |
foreach my $key (keys(%userenv)) { |
$userenv.="environment.$key=$userenv{$key}\n"; |
$userenv.="environment.$key=$userenv{$key}\n"; |
} |
} |
Line 154 sub success {
|
Line 155 sub success {
|
print $idf "browser.localres=$FORM{'localres'}\n"; |
print $idf "browser.localres=$FORM{'localres'}\n"; |
} |
} |
print $idf "server.domain=".$r->dir_config('lonDefDomain')."\n"; |
print $idf "server.domain=".$r->dir_config('lonDefDomain')."\n"; |
my $timezone=POSIX::strftime("%Z",localtime(time)); |
|
print $idf "server.timezone=$timezone\n"; |
|
print $idf "request.course.fn=\n"; |
print $idf "request.course.fn=\n"; |
print $idf "request.course.uri=\n"; |
print $idf "request.course.uri=\n"; |
print $idf "request.course.sec=\n"; |
print $idf "request.course.sec=\n"; |
Line 208 sub success {
|
Line 207 sub success {
|
my $remoteinfo=&Apache::lonmenu::load_remote_msg($lowerurl); |
my $remoteinfo=&Apache::lonmenu::load_remote_msg($lowerurl); |
my $setflags=&Apache::lonmenu::setflags(); |
my $setflags=&Apache::lonmenu::setflags(); |
my $maincall=&Apache::lonmenu::maincall(); |
my $maincall=&Apache::lonmenu::maincall(); |
my $bodytag=&Apache::loncommon::bodytag('Successful Login'); |
my $start_page=&Apache::loncommon::start_page('Successful Login', |
my $add=&addcontent(); |
$startupremote, |
|
{'no_inline_link' => 1,}); |
|
my $end_page =&Apache::loncommon::end_page(); |
|
|
my $continuelink; |
my $continuelink; |
if (($env{'browser.interface'} eq 'textual') || |
if (($env{'browser.interface'} eq 'textual') || |
($env{'environment.remote'} eq 'off')) { |
($env{'environment.remote'} eq 'off')) { |
Line 217 sub success {
|
Line 219 sub success {
|
} |
} |
# ------------------------------------------------- Output for successful login |
# ------------------------------------------------- Output for successful login |
|
|
$r->send_cgi_header(<<ENDHEADER); |
&Apache::loncommon::content_type($r,'text/html'); |
Content-type: text/html$add |
$r->header_out('Set-cookie' => $cookie); |
Set-cookie: $cookie |
$r->send_http_header; |
|
|
ENDHEADER |
|
my %lt=&Apache::lonlocal::texthash( |
my %lt=&Apache::lonlocal::texthash( |
'wel' => 'Welcome', |
'wel' => 'Welcome', |
'mes' => 'Welcome to the Learning<i>Online</i> Network with CAPA. Please wait while your session is being set up', |
'mes' => 'Welcome to the Learning<i>Online</i> Network with CAPA. Please wait while your session is being set up', |
Line 229 ENDHEADER
|
Line 230 ENDHEADER
|
'log' => 'loginproblems.html', |
'log' => 'loginproblems.html', |
); |
); |
$r->print(<<ENDSUCCESS); |
$r->print(<<ENDSUCCESS); |
<html> |
$start_page |
<head> |
|
<title>Successful Login to the LearningOnline Network with CAPA</title> |
|
$startupremote |
|
</head> |
|
$bodytag |
|
$setflags |
$setflags |
$windowinfo |
$windowinfo |
<h1>$lt{'wel'}</h1> |
<h1>$lt{'wel'}</h1> |
Line 243 $lt{'mes'}.<p>
|
Line 239 $lt{'mes'}.<p>
|
$remoteinfo |
$remoteinfo |
$maincall |
$maincall |
$continuelink |
$continuelink |
</body> |
$end_page |
</html> |
|
ENDSUCCESS |
ENDSUCCESS |
} |
} |
|
|
Line 252 ENDSUCCESS
|
Line 247 ENDSUCCESS
|
|
|
sub failed { |
sub failed { |
my ($r,$message) = @_; |
my ($r,$message) = @_; |
my $bodytag=&Apache::loncommon::bodytag('Unsuccessful Login'); |
my $start_page = &Apache::loncommon::start_page('Unsuccessful Login',undef, |
my $add=&addcontent(); |
{'no_inline_link' => 1,}); |
$r->send_cgi_header(<<ENDFHEADER); |
my $end_page = &Apache::loncommon::end_page(); |
Content-type: text/html$add |
|
|
my %lt=('sorry' => &mt('Sorry ...'), |
|
'please' => |
|
&mt('Please [_1]log in again[_2].', |
|
"<a href=\"/adm/login?username=$FORM{'uname'}&domain=$FORM{'udom'}\">", |
|
'</a>'), |
|
'problemspage' => &mt('loginproblems.html'), |
|
'problems' => 'Problems', |
|
); |
|
&Apache::loncommon::content_type($r,'text/html'); |
|
$r->send_http_header; |
|
|
ENDFHEADER |
|
$r->print(<<ENDFAILED); |
$r->print(<<ENDFAILED); |
<html> |
$start_page |
<head> |
<h1>$lt{'sorry'}</h1> |
<title>Unsuccessful Login to the LearningOnline Network with CAPA</title> |
|
</head> |
|
$bodytag |
|
<h1>Sorry ...</h1> |
|
<p><b>$message</b></p> |
<p><b>$message</b></p> |
<p>Please <a href="/adm/login?username=$FORM{'uname'}&domain=$FORM{'udom'}">log in again</a>.</p> |
<p>$lt{'please'}</p> |
<p> |
<p> |
<a href="/adm/loginproblems.html">Problems?</a></p> |
<a href="/adm/$lt{'problemspage'}">$lt{'problems'}</a></p> |
</body> |
$end_page |
</html> |
|
ENDFAILED |
ENDFAILED |
} |
} |
|
|
# --------------------------------------------------------------------- Charset |
|
|
|
sub addcontent { |
|
my $encoding=&Apache::lonlocal::current_encoding; |
|
if ($encoding) { |
|
return '; charset='.$encoding; |
|
} else { |
|
return ''; |
|
} |
|
} |
|
|
|
# ------------------------------------------------------------------ Rerouting! |
# ------------------------------------------------------------------ Rerouting! |
|
|
sub reroute { |
sub reroute { |
my $r=shift; |
my ($r) = @_; |
my $bodytag=&Apache::loncommon::bodytag('Rerouting'); |
&Apache::loncommon::content_type($r,'text/html'); |
$r->send_cgi_header(<<ENDRFHEADER); |
$r->send_http_header; |
Content-type: text/html |
my $msg='<h1>Sorry ...</h1> |
|
Please <a href="/">log in again</a>.'; |
ENDRFHEADER |
&Apache::loncommon::simple_error_page($r,'Rerouting',$msg); |
$r->print(<<ENDRFAILED); |
|
<html> |
|
<head> |
|
<title>Rerouting Login to the LearningOnline Network with CAPA</title> |
|
</head> |
|
$bodytag |
|
<h1>Sorry ...</h1> |
|
Please <a href="/">log in again</a>. |
|
</body> |
|
</html> |
|
ENDRFAILED |
|
} |
} |
|
|
# ---------------------------------------------------------------- Main handler |
# ---------------------------------------------------------------- Main handler |
Line 330 sub handler {
|
Line 307 sub handler {
|
my $lonidsdir=$r->dir_config('lonIDsDir'); |
my $lonidsdir=$r->dir_config('lonIDsDir'); |
if ((-e "$lonidsdir/$handle.id") && ($handle ne '')) { |
if ((-e "$lonidsdir/$handle.id") && ($handle ne '')) { |
# Indeed, a valid token is found |
# Indeed, a valid token is found |
$r->send_cgi_header(<<ENDFHEADER); |
&Apache::loncommon::content_type($r,'text/html'); |
Content-type: text/html |
$r->send_http_header; |
|
my $start_page = |
ENDFHEADER |
&Apache::loncommon::start_page('Already logged in'); |
my $bodytag=&Apache::loncommon::bodytag('Already logged in'); |
my $end_page = |
|
&Apache::loncommon::end_page(); |
$r->print(<<ENDFAILED); |
$r->print(<<ENDFAILED); |
<html> |
$start_page |
<head> |
|
<title>Already logged in</title> |
|
</head> |
|
$bodytag |
|
<h1>You are already logged in</h1> |
<h1>You are already logged in</h1> |
<p>Please either <a href="/adm/roles">continue the current session</a> or |
<p>Please either <a href="/adm/roles">continue the current session</a> or |
<a href="/adm/logout">logout</a>.</p> |
<a href="/adm/logout">logout</a>.</p> |
<p> |
<p> |
<a href="/adm/loginproblems.html">Problems?</a></p> |
<a href="/adm/loginproblems.html">Problems?</a></p> |
</body> |
$end_page |
</html> |
|
ENDFAILED |
ENDFAILED |
return OK; |
return OK; |
} |
} |
Line 394 ENDFAILED
|
Line 367 ENDFAILED
|
failed($r,'Information needed to verify your login information is missing, inaccessible or expired.'); |
failed($r,'Information needed to verify your login information is missing, inaccessible or expired.'); |
return OK; |
return OK; |
} else { |
} else { |
unless (&Apache::lonnet::reply('tmpdel:'.$FORM{'logtoken'}, |
my $reply = &Apache::lonnet::reply('tmpdel:'.$FORM{'logtoken'}, |
$FORM{'serverid'}) eq 'ok') { |
$FORM{'serverid'}); |
|
if ( $reply ne 'ok' ) { |
&failed($r,'Session could not be opened.'); |
&failed($r,'Session could not be opened.'); |
|
&Apache::lonnet::logthis("ERROR got a reply of $reply when trying to contact ". $FORM{'serverid'}." to get login token"); |
|
return OK; |
} |
} |
} |
} |
my ($key,$firsturl)=split(/&/,$tmpinfo); |
my ($key,$firsturl)=split(/&/,$tmpinfo); |