--- loncom/auth/lonauth.pm 2003/03/02 03:58:55 1.44
+++ loncom/auth/lonauth.pm 2005/02/07 20:33:04 1.64
@@ -1,7 +1,7 @@
# The LearningOnline Network
# User Authentication Module
#
-# $Id: lonauth.pm,v 1.44 2003/03/02 03:58:55 www Exp $
+# $Id: lonauth.pm,v 1.64 2005/02/07 20:33:04 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -42,9 +42,11 @@ use CGI qw(:standard);
use CGI::Cookie();
use DynaLoader; # for Crypt::DES version
use Crypt::DES;
+use Apache::loncommon();
use Apache::lonnet();
use Apache::lonmenu();
use Fcntl qw(:flock);
+use Apache::lonlocal;
my %FORM;
@@ -77,36 +79,8 @@ sub success {
# ------------------------------------ Check browser type and MathML capability
- my @browsertype=split(/\&/,$r->dir_config("lonBrowsDet"));
- my %mathcap=split(/\&/,$r->dir_config("lonMathML"));
- my $httpbrowser=$ENV{"HTTP_USER_AGENT"};
- my $i;
- my $clientbrowser='unknown';
- my $clientversion='0';
- my $clientmathml='';
- my $clientunicode='0';
- for ($i=0;$i<=$#browsertype;$i++) {
- my ($bname,$match,$notmatch,$vreg,$minv,$univ)=split(/\:/,$browsertype[$i]);
- if (($httpbrowser=~/$match/i) && ($httpbrowser!~/$notmatch/i)) {
- $clientbrowser=$bname;
- $httpbrowser=~/$vreg/i;
- $clientversion=$1;
- $clientmathml=($clientversion>=$minv);
- $clientunicode=($clientversion>=$univ);
- }
- }
- my $clientos='unknown';
- if (($httpbrowser=~/linux/i) ||
- ($httpbrowser=~/unix/i) ||
- ($httpbrowser=~/ux/i) ||
- ($httpbrowser=~/solaris/i)) { $clientos='unix'; }
- if (($httpbrowser=~/vax/i) ||
- ($httpbrowser=~/vms/i)) { $clientos='vms'; }
- if ($httpbrowser=~/next/i) { $clientos='next'; }
- if (($httpbrowser=~/mac/i) ||
- ($httpbrowser=~/powerpc/i)) { $clientos='mac'; }
- if ($httpbrowser=~/win/i) { $clientos='win'; }
- if ($httpbrowser=~/embed/i) { $clientos='pda'; }
+ my ($httpbrowser,$clientbrowser,$clientversion,$clientmathml,
+ $clientunicode,$clientos) = &Apache::loncommon::decode_user_agent($r);
# -------------------------------------- Any accessibility options to remember?
if (($FORM{'interface'}) && ($FORM{'remember'} eq 'true')) {
@@ -133,6 +107,13 @@ sub success {
if (($userenv{'interface'}) && (!$FORM{'interface'})) {
$FORM{'interface'}=$userenv{'interface'};
}
+ $ENV{'environment.remote'}=$userenv{'remote'};
+# --------------- Do not trust query string to be put directly into environment
+ foreach ('imagesuppress','appletsuppress',
+ 'embedsuppress','fontenhance','blackwhite',
+ 'interface','localpath','localres') {
+ $FORM{$_}=~s/[\n\r\=]//gs;
+ }
# --------------------------------------------------------- Write first profile
{
@@ -152,10 +133,15 @@ sub success {
print $idf "browser.mathml=$clientmathml\n";
print $idf "browser.unicode=$clientunicode\n";
print $idf "browser.os=$clientos\n";
+ if ($FORM{'localpath'}) {
+ print $idf "browser.localpath=$FORM{'localpath'}\n";
+ print $idf "browser.localres=$FORM{'localres'}\n";
+ }
print $idf "request.course.fn=\n";
print $idf "request.course.uri=\n";
print $idf "request.course.sec=\n";
print $idf "request.role=cm\n";
+ print $idf "request.role.adv=$ENV{'user.adv'}\n";
print $idf "request.host=$ENV{'REMOTE_ADDR'}\n";
if ($FORM{'interface'}) {
$FORM{'interface'}=~s/\W//gs;
@@ -173,6 +159,7 @@ sub success {
$idf->close();
}
$ENV{'request.role'}='cm';
+ $ENV{'request.role.adv'}=$ENV{'user.adv'};
$ENV{'browser.type'}=$clientbrowser;
# -------------------------------------------------------------------- Log this
@@ -194,16 +181,29 @@ sub success {
# -------------------------------------------------------- Menu script and info
my $windowinfo=&Apache::lonmenu::open($clientos);
my $startupremote=&Apache::lonmenu::startupremote($lowerurl);
+ my $remoteinfo=&Apache::lonmenu::load_remote_msg($lowerurl);
my $setflags=&Apache::lonmenu::setflags();
my $maincall=&Apache::lonmenu::maincall();
my $bodytag=&Apache::loncommon::bodytag('Successful Login');
+ my $add=&addcontent();
+ my $continuelink;
+ if (($ENV{'browser.interface'} eq 'textual') ||
+ ($ENV{'environment.remote'} eq 'off')) {
+ $continuelink="".&mt('Continue')."";
+ }
# ------------------------------------------------- Output for successful login
$r->send_cgi_header(< 'Welcome',
+ 'mes' => 'Welcome to the LearningOnline Network with CAPA. Please wait while your session is being set up',
+ 'pro' => 'Problems',
+ 'log' => 'loginproblems.html',
+ );
$r->print(<
@@ -213,12 +213,12 @@ $startupremote
$bodytag
$setflags
$windowinfo
-Welcome!
-Welcome to the LearningOnline Network with CAPA.
-Please wait while your session
-is being set up.
-Problems?
+$lt{'wel'}
+$lt{'mes'}.
+$lt{'pro'}?
+$remoteinfo
$maincall
+$continuelink