X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=application%2Flegacy%2FLegacyController.php;h=1fed418b7c16612e875b9be185e07dd730100f4c;hb=53054b2bf6a919fd4ff9b44b6ad1986f21f488b6;hp=efc144095afc13241f048312213dedf39e3d104f;hpb=aca995e09cf9c210ffe45584fbe50dcedb8bdebb;p=github%2Fshaarli%2FShaarli.git diff --git a/application/legacy/LegacyController.php b/application/legacy/LegacyController.php index efc14409..1fed418b 100644 --- a/application/legacy/LegacyController.php +++ b/application/legacy/LegacyController.php @@ -39,31 +39,44 @@ class LegacyController extends ShaarliVisitorController /** Legacy route: ?post= */ public function post(Request $request, Response $response): Response { - $parameters = count($request->getQueryParams()) > 0 ? '?' . http_build_query($request->getQueryParams()) : ''; + $route = '/admin/shaare'; + $buildParameters = function (?array $parameters, bool $encode) { + if ($encode) { + $parameters = array_map('urlencode', $parameters); + } + + return count($parameters) > 0 ? '?' . http_build_query($parameters) : ''; + }; + if (!$this->container->loginManager->isLoggedIn()) { - return $this->redirect($response, '/login?returnurl=/admin/shaare' . $parameters); + $parameters = $buildParameters($request->getQueryParams(), true); + return $this->redirect($response, '/login?returnurl=' . $this->getBasePath() . $route . $parameters); } - return $this->redirect($response, '/admin/shaare' . $parameters); + $parameters = $buildParameters($request->getQueryParams(), false); + + return $this->redirect($response, $route . $parameters); } /** Legacy route: ?addlink= */ protected function addlink(Request $request, Response $response): Response { + $route = '/admin/add-shaare'; + if (!$this->container->loginManager->isLoggedIn()) { - return $this->redirect($response, '/login?returnurl=/admin/add-shaare'); + return $this->redirect($response, '/login?returnurl=' . $this->getBasePath() . $route); } - return $this->redirect($response, '/admin/add-shaare'); + return $this->redirect($response, $route); } /** Legacy route: ?do=login */ protected function login(Request $request, Response $response): Response { - $returnurl = $request->getQueryParam('returnurl'); + $returnUrl = $request->getQueryParam('returnurl'); - return $this->redirect($response, '/login' . ($returnurl ? '?returnurl=' . $returnurl : '')); + return $this->redirect($response, '/login' . ($returnUrl ? '?returnurl=' . $returnUrl : '')); } /** Legacy route: ?do=logout */ @@ -129,4 +142,21 @@ class LegacyController extends ShaarliVisitorController return $this->redirect($response, '/feed/' . $feedType . $parameters); } + + /** Legacy route: ?do=configure */ + protected function configure(Request $request, Response $response): Response + { + $route = '/admin/configure'; + + if (!$this->container->loginManager->isLoggedIn()) { + return $this->redirect($response, '/login?returnurl=' . $this->getBasePath() . $route); + } + + return $this->redirect($response, $route); + } + + protected function getBasePath(): string + { + return $this->container->basePath ?: ''; + } }