mirror of
https://github.com/BookStackApp/BookStack.git
synced 2024-11-22 15:26:43 +08:00
Fixed redirect issue when custom app url in use
Fixes #956 & #1048 Also added tests to cover this url logic. Also removed debugbar during tests to maybe improve test speed.
This commit is contained in:
parent
7799ba5c79
commit
19b7093438
|
@ -92,10 +92,15 @@ function baseUrl($path, $forceAppDomain = false)
|
||||||
if ($isFullUrl && !$forceAppDomain) {
|
if ($isFullUrl && !$forceAppDomain) {
|
||||||
return $path;
|
return $path;
|
||||||
}
|
}
|
||||||
|
|
||||||
$path = trim($path, '/');
|
$path = trim($path, '/');
|
||||||
|
$trimBase = rtrim(config('app.url'), '/');
|
||||||
|
|
||||||
// Remove non-specified domain if forced and we have a domain
|
// Remove non-specified domain if forced and we have a domain
|
||||||
if ($isFullUrl && $forceAppDomain) {
|
if ($isFullUrl && $forceAppDomain) {
|
||||||
|
if (strpos($path, $trimBase) === 0) {
|
||||||
|
$path = trim(substr($path, strlen($trimBase) - 1));
|
||||||
|
}
|
||||||
$explodedPath = explode('/', $path);
|
$explodedPath = explode('/', $path);
|
||||||
$path = implode('/', array_splice($explodedPath, 3));
|
$path = implode('/', array_splice($explodedPath, 3));
|
||||||
}
|
}
|
||||||
|
@ -105,7 +110,7 @@ function baseUrl($path, $forceAppDomain = false)
|
||||||
return url($path);
|
return url($path);
|
||||||
}
|
}
|
||||||
|
|
||||||
return rtrim(config('app.url'), '/') . '/' . $path;
|
return $trimBase . '/' . $path;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -42,5 +42,6 @@
|
||||||
<env name="GOOGLE_AUTO_REGISTER" value=""/>
|
<env name="GOOGLE_AUTO_REGISTER" value=""/>
|
||||||
<env name="GOOGLE_AUTO_CONFIRM_EMAIL" value=""/>
|
<env name="GOOGLE_AUTO_CONFIRM_EMAIL" value=""/>
|
||||||
<env name="APP_URL" value="http://bookstack.dev"/>
|
<env name="APP_URL" value="http://bookstack.dev"/>
|
||||||
|
<env name="DEBUGBAR_ENABLED" value="false"/>
|
||||||
</php>
|
</php>
|
||||||
</phpunit>
|
</phpunit>
|
||||||
|
|
19
tests/HelpersTest.php
Normal file
19
tests/HelpersTest.php
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
<?php namespace Tests;
|
||||||
|
|
||||||
|
class HelpersTest extends TestCase
|
||||||
|
{
|
||||||
|
|
||||||
|
public function test_base_url_takes_config_into_account()
|
||||||
|
{
|
||||||
|
config()->set('app.url', 'http://example.com/bookstack');
|
||||||
|
$result = baseUrl('/');
|
||||||
|
$this->assertEquals('http://example.com/bookstack/', $result);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function test_base_url_takes_extra_path_into_account_on_forced_domain()
|
||||||
|
{
|
||||||
|
config()->set('app.url', 'http://example.com/bookstack');
|
||||||
|
$result = baseUrl('http://example.com/bookstack/', true);
|
||||||
|
$this->assertEquals('http://example.com/bookstack/', $result);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user