[LON-CAPA-cvs] cvs: loncom(version_2_9_X) /auth lonauth.pm

raeburn raeburn@source.lon-capa.org
Sun, 23 May 2010 21:20:11 -0000


raeburn		Sun May 23 21:20:11 2010 EDT

  Modified files:              (Branch: version_2_9_X)
    /loncom/auth	lonauth.pm 
  Log:
  - Backport 1.103.
  
  
Index: loncom/auth/lonauth.pm
diff -u loncom/auth/lonauth.pm:1.101.4.1 loncom/auth/lonauth.pm:1.101.4.2
--- loncom/auth/lonauth.pm:1.101.4.1	Wed Aug 12 19:28:09 2009
+++ loncom/auth/lonauth.pm	Sun May 23 21:20:11 2010
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # User Authentication Module
 #
-# $Id: lonauth.pm,v 1.101.4.1 2009/08/12 19:28:09 raeburn Exp $
+# $Id: lonauth.pm,v 1.101.4.2 2010/05/23 21:20:11 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -207,23 +207,33 @@
 # -------------------------------- Prevent users from attempting to login twice
     my $handle = &Apache::lonnet::check_for_valid_session($r);
     if ($handle ne '') {
+        my $lonidsdir=$r->dir_config('lonIDsDir');
+        if ($handle=~/^publicuser\_/) {
+# For "public user" - remove it, we apparently really want to login
+            unlink($r->dir_config('lonIDsDir')."/$handle.id");
+        } else {
 # Indeed, a valid token is found
-	&Apache::loncommon::content_type($r,'text/html');
-	$r->send_http_header;
-	my $start_page = 
-	    &Apache::loncommon::start_page('Already logged in');
-	my $end_page = 
-	    &Apache::loncommon::end_page();
-        $r->print(
-           $start_page
-          .'<h1>'.&mt('You are already logged in!').'</h1>'
-          .'<p>'.&mt('Please either [_1]continue the current session[_2] or [_3]log out[_4].'
-                    ,'<a href="/adm/roles">','</a>','<a href="/adm/logout">','</a>')
-          .'</p>'
-          .'<p><a href="/adm/loginproblems.html">'.&mt('Login problems?').'</a></p>'
-          .$end_page
-        );
-        return OK;
+            &Apache::lonnet::transfer_profile_to_env($lonidsdir,$handle);
+	    &Apache::loncommon::content_type($r,'text/html');
+	    $r->send_http_header;
+	    my $start_page = 
+	        &Apache::loncommon::start_page('Already logged in');
+	    my $end_page = 
+	        &Apache::loncommon::end_page();
+            my $dest = '/adm/roles';
+            if ($env{'form.firsturl'} ne '') {
+                $dest = $env{'form.firsturl'};
+            }
+            $r->print(
+                $start_page
+               .'<h1>'.&mt('You are already logged in!').'</h1>'
+               .'<p>'.&mt('Please either [_1]continue the current session[_2] or [_3]log out[_4].'
+                        ,'<a href="'.$dest.'">','</a>','<a href="/adm/logout">','</a>')
+              .'</p>'
+              .$end_page
+            );
+            return OK;
+        }
     }
 
 # ---------------------------------------------------- No valid token, continue