mirror of
https://github.com/BookStackApp/BookStack.git
synced 2024-08-25 11:45:58 +00:00
parent
5470a9e035
commit
8ae35f645a
@ -123,18 +123,19 @@ function baseUrl($path, $forceAppDomain = false)
|
|||||||
// 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 (!empty($base) && strpos($path, $base) === 0) {
|
if (!empty($base) && strpos($path, $base) === 0) {
|
||||||
$path = trim(substr($path, strlen($base) - 1));
|
$path = substr($path, strlen($base));
|
||||||
}
|
} else {
|
||||||
$explodedPath = explode('/', $path);
|
$explodedPath = explode('/', $path);
|
||||||
$path = implode('/', array_splice($explodedPath, 3));
|
$path = implode('/', array_splice($explodedPath, 3));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Return normal url path if not specified in config
|
// Return normal url path if not specified in config
|
||||||
if (config('app.url') === '') {
|
if (config('app.url') === '') {
|
||||||
return url($path);
|
return url($path);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $base . '/' . $path;
|
return $base . '/' . ltrim($path, '/');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
<?php namespace Tests;
|
<?php namespace Tests;
|
||||||
|
|
||||||
|
use BookStack\Entities\Page;
|
||||||
use BookStack\Notifications\ConfirmEmail;
|
use BookStack\Notifications\ConfirmEmail;
|
||||||
use BookStack\Auth\User;
|
use BookStack\Auth\User;
|
||||||
use BookStack\Settings\SettingService;
|
use BookStack\Settings\SettingService;
|
||||||
@ -334,6 +335,17 @@ class AuthTest extends BrowserKitTest
|
|||||||
->seeLink('Sign up');
|
->seeLink('Sign up');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function test_login_redirects_to_initially_requested_url_correctly()
|
||||||
|
{
|
||||||
|
config()->set('app.url', 'http://localhost');
|
||||||
|
$page = Page::query()->first();
|
||||||
|
|
||||||
|
$this->visit($page->getUrl())
|
||||||
|
->seePageUrlIs(baseUrl('/login'));
|
||||||
|
$this->login('admin@admin.com', 'password')
|
||||||
|
->seePageUrlIs($page->getUrl());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Perform a login
|
* Perform a login
|
||||||
* @param string $email
|
* @param string $email
|
||||||
|
@ -16,4 +16,18 @@ class HelpersTest extends TestCase
|
|||||||
$result = baseUrl('http://example.com/bookstack/', true);
|
$result = baseUrl('http://example.com/bookstack/', true);
|
||||||
$this->assertEquals('http://example.com/bookstack/', $result);
|
$this->assertEquals('http://example.com/bookstack/', $result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function test_base_url_force_domain_works_as_expected_with_full_url_given()
|
||||||
|
{
|
||||||
|
config()->set('app.url', 'http://example.com');
|
||||||
|
$result = baseUrl('http://examps.com/books/test/page/cat', true);
|
||||||
|
$this->assertEquals('http://example.com/books/test/page/cat', $result);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function test_base_url_force_domain_works_when_app_domain_is_same_as_given_url()
|
||||||
|
{
|
||||||
|
config()->set('app.url', 'http://example.com');
|
||||||
|
$result = baseUrl('http://example.com/books/test/page/cat', true);
|
||||||
|
$this->assertEquals('http://example.com/books/test/page/cat', $result);
|
||||||
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user