mirror of
https://github.com/BookStackApp/BookStack.git
synced 2025-03-13 03:43:22 +00:00
parent
5470a9e035
commit
8ae35f645a
3 changed files with 31 additions and 4 deletions
|
@ -123,10 +123,11 @@ function baseUrl($path, $forceAppDomain = false)
|
|||
// Remove non-specified domain if forced and we have a domain
|
||||
if ($isFullUrl && $forceAppDomain) {
|
||||
if (!empty($base) && strpos($path, $base) === 0) {
|
||||
$path = trim(substr($path, strlen($base) - 1));
|
||||
$path = substr($path, strlen($base));
|
||||
} else {
|
||||
$explodedPath = explode('/', $path);
|
||||
$path = implode('/', array_splice($explodedPath, 3));
|
||||
}
|
||||
$explodedPath = explode('/', $path);
|
||||
$path = implode('/', array_splice($explodedPath, 3));
|
||||
}
|
||||
|
||||
// Return normal url path if not specified in config
|
||||
|
@ -134,7 +135,7 @@ function baseUrl($path, $forceAppDomain = false)
|
|||
return url($path);
|
||||
}
|
||||
|
||||
return $base . '/' . $path;
|
||||
return $base . '/' . ltrim($path, '/');
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
<?php namespace Tests;
|
||||
|
||||
use BookStack\Entities\Page;
|
||||
use BookStack\Notifications\ConfirmEmail;
|
||||
use BookStack\Auth\User;
|
||||
use BookStack\Settings\SettingService;
|
||||
|
@ -334,6 +335,17 @@ class AuthTest extends BrowserKitTest
|
|||
->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
|
||||
* @param string $email
|
||||
|
|
|
@ -16,4 +16,18 @@ class HelpersTest extends TestCase
|
|||
$result = baseUrl('http://example.com/bookstack/', true);
|
||||
$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 a new issue