version 1.59, 2003/11/12 16:55:40
|
version 1.62, 2004/03/16 20:42:50
|
Line 184 sub success {
|
Line 184 sub success {
|
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 $bodytag=&Apache::loncommon::bodytag('Successful Login'); |
|
my $add=&addcontent(); |
# ------------------------------------------------- Output for successful login |
# ------------------------------------------------- Output for successful login |
|
|
$r->send_cgi_header(<<ENDHEADER); |
$r->send_cgi_header(<<ENDHEADER); |
Content-type: text/html |
Content-type: text/html$add |
Set-cookie: $cookie |
Set-cookie: $cookie |
|
|
ENDHEADER |
ENDHEADER |
Line 220 ENDSUCCESS
|
Line 221 ENDSUCCESS
|
sub failed { |
sub failed { |
my ($r,$message) = @_; |
my ($r,$message) = @_; |
my $bodytag=&Apache::loncommon::bodytag('Unsuccessful Login'); |
my $bodytag=&Apache::loncommon::bodytag('Unsuccessful Login'); |
|
my $add=&addcontent(); |
$r->send_cgi_header(<<ENDFHEADER); |
$r->send_cgi_header(<<ENDFHEADER); |
Content-type: text/html |
Content-type: text/html$add |
|
|
ENDFHEADER |
ENDFHEADER |
$r->print(<<ENDFAILED); |
$r->print(<<ENDFAILED); |
Line 229 ENDFHEADER
|
Line 231 ENDFHEADER
|
<head> |
<head> |
<title>Unsuccessful Login to the LearningOnline Network with CAPA</title> |
<title>Unsuccessful Login to the LearningOnline Network with CAPA</title> |
</head> |
</head> |
<html> |
|
$bodytag |
$bodytag |
<h1>Sorry ...</h1> |
<h1>Sorry ...</h1> |
<p><b>$message</b></p> |
<p><b>$message</b></p> |
Line 241 $bodytag
|
Line 242 $bodytag
|
ENDFAILED |
ENDFAILED |
} |
} |
|
|
|
# --------------------------------------------------------------------- Charset |
|
|
|
sub addcontent { |
|
my $encoding=&Apache::lonlocal::current_encoding; |
|
if ($encoding) { |
|
return '; charset='.$encoding; |
|
} else { |
|
return ''; |
|
} |
|
} |
|
|
# ------------------------------------------------------------------ Rerouting! |
# ------------------------------------------------------------------ Rerouting! |
|
|
sub reroute { |
sub reroute { |
Line 255 ENDRFHEADER
|
Line 267 ENDRFHEADER
|
<head> |
<head> |
<title>Rerouting Login to the LearningOnline Network with CAPA</title> |
<title>Rerouting Login to the LearningOnline Network with CAPA</title> |
</head> |
</head> |
<html> |
|
$bodytag |
$bodytag |
<h1>Sorry ...</h1> |
<h1>Sorry ...</h1> |
Please <a href="/">log in again</a>. |
Please <a href="/">log in again</a>. |
Line 297 ENDFHEADER
|
Line 308 ENDFHEADER
|
<head> |
<head> |
<title>Already logged in</title> |
<title>Already logged in</title> |
</head> |
</head> |
<html> |
|
$bodytag |
$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 |
Line 331 ENDFAILED
|
Line 341 ENDFAILED
|
failed($r,'Username, password and domain need to be specified.'); |
failed($r,'Username, password and domain need to be specified.'); |
return OK; |
return OK; |
} |
} |
|
|
|
# split user logging in and "su"-user |
|
|
|
($FORM{'uname'},$FORM{'suname'})=split(/\:/,$FORM{'uname'}); |
$FORM{'uname'} =~ s/\W//g; |
$FORM{'uname'} =~ s/\W//g; |
|
$FORM{'suname'} =~ s/\W//g; |
$FORM{'udom'} =~ s/\W//g; |
$FORM{'udom'} =~ s/\W//g; |
|
|
my $role = $r->dir_config('lonRole'); |
my $role = $r->dir_config('lonRole'); |
Line 388 ENDFAILED
|
Line 403 ENDFAILED
|
($firsturl=~/^\/adm\/(logout|remote)/)) { |
($firsturl=~/^\/adm\/(logout|remote)/)) { |
$firsturl='/adm/roles'; |
$firsturl='/adm/roles'; |
} |
} |
|
# --------------------------------- Are we attempting to login as somebody else? |
success($r,$FORM{'uname'},$FORM{'udom'},$authhost,$firsturl); |
if ($FORM{'suname'}) { |
|
# ------------ see if the original user has enough privileges to pull this stunt |
|
if (&Apache::lonnet::privileged($FORM{'uname'},$FORM{'udom'})) { |
|
# ---------------------------------------------------- see if the su-user exists |
|
unless (&Apache::lonnet::homeserver($FORM{'suname'},$FORM{'udom'}) |
|
eq 'no_host') { |
|
&Apache::lonnet::logthis(&Apache::lonnet::homeserver($FORM{'suname'},$FORM{'udom'})); |
|
# ------------------------------ see if the su-user is not too highly privileged |
|
unless (&Apache::lonnet::privileged($FORM{'suname'},$FORM{'udom'})) { |
|
# -------------------------------------------------------- actually switch users |
|
&Apache::lonnet::logperm('User '.$FORM{'uname'}.' at '.$FORM{'udom'}. |
|
' logging in as '.$FORM{'suname'}); |
|
$FORM{'uname'}=$FORM{'suname'}; |
|
} else { |
|
&Apache::lonnet::logthis('Attempted switch user to privileged user'); |
|
} |
|
} |
|
} else { |
|
&Apache::lonnet::logthis('Non-privileged user attempting switch user'); |
|
} |
|
} |
|
&success($r,$FORM{'uname'},$FORM{'udom'},$authhost,$firsturl); |
return OK; |
return OK; |
} |
} |
|
|