[evolvis-commits] r16977: Harmonise return_to behaviour for login and logout, and stop redirecting to inaccessible pages such as /my/ on logout

mirabilos at evolvis.org mirabilos at evolvis.org
Tue Mar 1 01:54:28 CET 2011


Author: mirabilos
Date: 2011-03-01 01:54:28 +0100 (Tue, 01 Mar 2011)
New Revision: 16977

Modified:
   trunk/gforge_base/evolvisforge-5.1/src/www/account/login.php
   trunk/gforge_base/evolvisforge-5.1/src/www/account/logout.php
Log:
Harmonise return_to behaviour for login and logout, and stop redirecting to inaccessible pages such as /my/ on logout

Modified: trunk/gforge_base/evolvisforge-5.1/src/www/account/login.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/src/www/account/login.php	2011-03-01 00:54:23 UTC (rev 16976)
+++ trunk/gforge_base/evolvisforge-5.1/src/www/account/login.php	2011-03-01 00:54:28 UTC (rev 16977)
@@ -54,7 +54,7 @@
 	    || (strpos($rtpath,'/plugins/mediawiki') == 0)) {
 		$newrt = $return_to ;
 	} else {
-		$newrt = '' ;
+		$newrt = '/' ;
 	}
 	$return_to = $newrt ;
 }
@@ -83,10 +83,10 @@
 			You can now optionally stay in SSL mode
 		*/
 		if ($return_to) {
-			header ("Location: " . $return_to);
+			header ("Location: " . util_make_url($return_to));
 			exit;
 		} else {
-			header ("Location: ".util_make_url ("/my/"));
+			header ("Location: " . util_make_url("/my"));
 			exit;
 		}
 	}

Modified: trunk/gforge_base/evolvisforge-5.1/src/www/account/logout.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/src/www/account/logout.php	2011-03-01 00:54:23 UTC (rev 16976)
+++ trunk/gforge_base/evolvisforge-5.1/src/www/account/logout.php	2011-03-01 00:54:28 UTC (rev 16977)
@@ -34,17 +34,29 @@
 //      Validate return_to
 //
 if ($return_to) {
-        $tmpreturn=explode('?',$return_to);
-        if (!@is_file(forge_get_config('url_root').$tmpreturn[0]) && !@is_dir(forge_get_config('url_root').$tmpreturn[0]) && !(strpos($tmpreturn[0],'projects') == 1) && !(strpos($tmpreturn[0],'plugins/mediawiki') == 1)) {
-	$return_to='';
-}				        }
+        $tmpreturn = explode('?',$return_to);
+	$rtpath = $tmpreturn[0] ;
 
+	if (@is_file(forge_get_config('url_root').$rtpath)
+	    || @is_dir(forge_get_config('url_root').$rtpath)
+	    || (strpos($rtpath,'/projects') == 0)
+	    || (strpos($rtpath,'/plugins/mediawiki') == 0)) {
+		$newrt = $return_to ;
+	} else {
+		$newrt = '/' ;
+	}
+
+	if ($return_to == '/my' || $return_to == '/account') {
+		$return_to = '/';
+	}
+}
+
 session_logout();
 
 plugin_hook('before_logout_redirect');
 
 if ($return_to) {
-	header('Location: '.$return_to);
+	header('Location: '.util_make_url ($return_to));
 }else{
 	header('Location: '.util_make_url ('/'));
 }



More information about the evolvis-commits mailing list