mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2025-06-24 18:58:46 +02:00
Keep query parameters when adding locale part in RedirectController
This fixes issue #268
This commit is contained in:
parent
6e6e203f8a
commit
8351f38ee7
2 changed files with 11 additions and 6 deletions
|
@ -61,7 +61,6 @@ class RedirectController extends AbstractController
|
||||||
$locale = $user->getLanguage();
|
$locale = $user->getLanguage();
|
||||||
}
|
}
|
||||||
|
|
||||||
//$new_url = str_replace($request->getPathInfo(), '/' . $locale . $request->getPathInfo(), $request->getUri());
|
|
||||||
$new_url = $request->getUriForPath('/'.$locale.$request->getPathInfo());
|
$new_url = $request->getUriForPath('/'.$locale.$request->getPathInfo());
|
||||||
|
|
||||||
//If either mod_rewrite is not enabled or the index.php version is enforced, add index.php to the string
|
//If either mod_rewrite is not enabled or the index.php version is enforced, add index.php to the string
|
||||||
|
@ -71,6 +70,9 @@ class RedirectController extends AbstractController
|
||||||
$new_url = $request->getSchemeAndHttpHost().$request->getBaseUrl().'/index.php/'.$locale.$request->getPathInfo();
|
$new_url = $request->getSchemeAndHttpHost().$request->getBaseUrl().'/index.php/'.$locale.$request->getPathInfo();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Add the query string
|
||||||
|
$new_url .= $request->getQueryString() ? '?'.$request->getQueryString() : '';
|
||||||
|
|
||||||
return $this->redirect($new_url);
|
return $this->redirect($new_url);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -91,6 +91,9 @@ class RedirectControllerTest extends WebTestCase
|
||||||
//Without an explicit set value, the user should be redirect to english version
|
//Without an explicit set value, the user should be redirect to english version
|
||||||
[null, '/', '/en/'],
|
[null, '/', '/en/'],
|
||||||
['en_US', '/part/3', '/en_US/part/3'],
|
['en_US', '/part/3', '/en_US/part/3'],
|
||||||
|
//Test that query parameters work
|
||||||
|
['de', '/dialog?target_id=133&target_type=part', '/de/dialog?target_id=133&target_type=part'],
|
||||||
|
['en', '/dialog?storelocation=1', '/en/dialog?storelocation=1'],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -99,13 +102,13 @@ class RedirectControllerTest extends WebTestCase
|
||||||
*
|
*
|
||||||
* @dataProvider urlAddLocaleDataProvider
|
* @dataProvider urlAddLocaleDataProvider
|
||||||
* @group slow
|
* @group slow
|
||||||
* @depends testUrlMatch
|
* @depends testUrlMatch
|
||||||
*
|
*
|
||||||
* @param $user_locale
|
* @param string|null $user_locale
|
||||||
* @param $input_path
|
* @param string $input_path
|
||||||
* @param $redirect_path
|
* @param string $redirect_path
|
||||||
*/
|
*/
|
||||||
public function testAddLocale($user_locale, $input_path, $redirect_path): void
|
public function testAddLocale(?string $user_locale, string $input_path, string $redirect_path): void
|
||||||
{
|
{
|
||||||
//Redirect path is absolute
|
//Redirect path is absolute
|
||||||
$redirect_path = 'http://localhost'.$redirect_path;
|
$redirect_path = 'http://localhost'.$redirect_path;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue