/** * @param Request $request * @return PartialHtmlResponse */ public function run(Request $request) { $urlBuilder = $this->serviceContainer->getUrlBuilder(); $editUrl = $this->serviceContainer->getTemplateBuilder()->createTemplate(); $userUrlLoader = $this->serviceContainer->getUserUrlLoader(); $csrfHandler = $this->serviceContainer->getCsrfHandler()->createNewToken(); $url = $userUrlLoader->loadUrl($request->getGetVal('id')); if ($url == null) { return new PartialHtmlResponse('Sorry, you are not allowed to edit this url.'); } $update_action_url = $urlBuilder->createActionUrl('updateUrl', $request->getGetVal('id')); $trash_link = $urlBuilder->createActionUrl('trashUrl', $url->getId(), $csrfHandler->getCurrentToken()); $editUrl->loadFile('editUrl.html')->addPlaceHolder('form_action', $update_action_url)->addPlaceHolder('url', $url->getUrl())->addPlaceHolder('title', $url->getTitle())->addPlaceHolder('description', $url->getDescription())->addPlaceHolder('trash_link', $trash_link)->addPlaceHolder('list_urls_link', $urlBuilder->createActionUrl('listUrls'))->addCsrfToken($csrfHandler); return new PartialHtmlResponse($editUrl->render()); }
/** * @param Request $request * @return string|null */ private function getTokenFromRequest(Request $request) { $token = $request->getPostVal($this->tokenFieldName); if ($token !== null) { return $token; } return $request->getGetVal($this->tokenFieldName); }
/** * @param Request $request * @param int $user_id * @return UrlDataObject */ public function mapToDataObject(Request $request, $user_id) { $urlDataObject = new UrlDataObject(); $urlDataObject->userId = $user_id; $urlDataObject->id = $request->getGetVal('id'); $urlDataObject->url = $request->getPostVal('url'); $urlDataObject->title = $request->getPostVal('title'); $urlDataObject->description = $request->getPostVal('description'); $urlDataObject->created = $request->getPostVal('created'); $urlDataObject->updated = $request->getPostVal('update'); return $urlDataObject; }
/** * Does not feel right yet... * @param Request $request */ private function redirectToLoginIfNotLoggedIn(Request $request) { $userSession = $this->serviceContainer->getUserSession(); if ($userSession->userIsLoggedIn()) { return; } $actionName = $request->getGetVal('action'); if ($actionName == 'login' || $actionName == 'performLogin') { return; } $loginUrl = $this->serviceContainer->getUrlBuilder()->createActionUrl('login'); $redirectResponse = new HttpRedirectResponse($loginUrl); // Maybe just make a redirect method which always exits $this->handleResponse($redirectResponse); exit; }