Merge pull request #182 from owncloud/fix-redirect

Make the redirect_url working again
This commit is contained in:
Bart Visscher 2012-12-07 03:09:19 -08:00
commit 1e062ea895
3 changed files with 12 additions and 8 deletions

View File

@ -1,7 +1,7 @@
<!--[if IE 8]><style>input[type="checkbox"]{padding:0;}</style><![endif]-->
<form method="post">
<fieldset>
<?php if(!empty($_['redirect'])) { echo '<input type="hidden" name="redirect_url" value="'.$_['redirect'].'" />'; } ?>
<?php if(!empty($_['redirect_url'])) { echo '<input type="hidden" name="redirect_url" value="'.$_['redirect_url'].'" />'; } ?>
<ul>
<?php if(isset($_['invalidcookie']) && ($_['invalidcookie'])): ?>
<li class="errors">

View File

@ -506,6 +506,12 @@ class OC{
require_once 'core/setup.php';
exit();
}
// Handle redirect URL for logged in users
if(isset($_REQUEST['redirect_url']) && OC_User::isLoggedIn()) {
$location = OC_Helper::makeURLAbsolute(urldecode($_REQUEST['redirect_url']));
header( 'Location: '.$location );
return;
}
// Handle WebDAV
if($_SERVER['REQUEST_METHOD']=='PROPFIND') {
header('location: '.OC_Helper::linkToRemote('webdav'));
@ -670,7 +676,7 @@ class OC{
else {
OC_User::unsetMagicInCookie();
}
header( 'Location: '.$_SERVER['REQUEST_URI'] );
OC_Util::redirectToDefaultPage();
exit();
}
return true;

View File

@ -340,10 +340,8 @@ class OC_Util {
}
if (isset($_REQUEST['redirect_url'])) {
$redirect_url = OC_Util::sanitizeHTML($_REQUEST['redirect_url']);
} else {
$redirect_url = $_SERVER['REQUEST_URI'];
}
$parameters['redirect_url'] = $redirect_url;
$parameters['redirect_url'] = urlencode($redirect_url);
}
OC_Template::printGuestPage("", "login", $parameters);
}
@ -439,8 +437,8 @@ class OC_Util {
* Redirect to the user default page
*/
public static function redirectToDefaultPage() {
if(isset($_REQUEST['redirect_url']) && (substr($_REQUEST['redirect_url'], 0, strlen(OC::$WEBROOT)) == OC::$WEBROOT || $_REQUEST['redirect_url'][0] == '/')) {
$location = $_REQUEST['redirect_url'];
if(isset($_REQUEST['redirect_url'])) {
$location = OC_Helper::makeURLAbsolute(urldecode($_REQUEST['redirect_url']));
}
else if (isset(OC::$REQUESTEDAPP) && !empty(OC::$REQUESTEDAPP)) {
$location = OC_Helper::linkToAbsolute( OC::$REQUESTEDAPP, 'index.php' );