/** * Download a set of documents * * @param Request $request * @return RedirectResponse */ public function checkDownload(Request $request) { $lst = $request->request->get('lst'); $ssttid = $request->request->get('ssttid', ''); $subdefs = $request->request->get('obj', []); $download = new \set_export($this->app, $lst, $ssttid); if (0 === $download->get_total_download()) { $this->app->abort(403); } $list = $download->prepare_export($this->getAuthenticatedUser(), $this->app['filesystem'], $subdefs, $request->request->get('type') === 'title' ? true : false, $request->request->get('businessfields')); $list['export_name'] = sprintf('%s.zip', $download->getExportName()); $token = $this->getTokenManipulator()->createDownloadToken($this->getAuthenticatedUser(), serialize($list)); $this->getDispatcher()->dispatch(PhraseaEvents::EXPORT_CREATE, new ExportEvent($this->getAuthenticatedUser(), $ssttid, $lst, $subdefs, $download->getExportName())); return $this->app->redirectPath('prepare_download', ['token' => $token->getValue()]); }
/** * Download a set of documents * * @param Application $app * @param Request $request * @return RedirectResponse */ public function checkDownload(Application $app, Request $request) { $lst = $request->request->get('lst'); $ssttid = $request->request->get('ssttid', ''); $subdefs = $request->request->get('obj', []); $download = new \set_export($app, $lst, $ssttid); if (0 === $download->get_total_download()) { $app->abort(403); } $list = $download->prepare_export($app['authentication']->getUser(), $app['filesystem'], $subdefs, $request->request->get('type') === 'title' ? true : false, $request->request->get('businessfields')); $list['export_name'] = sprintf('%s.zip', $download->getExportName()); $token = $app['tokens']->getUrlToken(\random::TYPE_DOWNLOAD, $app['authentication']->getUser()->getId(), new \DateTime('+3 hours'), serialize($list)); if (!$token) { throw new \RuntimeException('Download token could not be generated'); } $app['events-manager']->trigger('__DOWNLOAD__', ['lst' => $lst, 'downloader' => $app['authentication']->getUser()->getId(), 'subdefs' => $subdefs, 'from_basket' => $ssttid, 'export_file' => $download->getExportName()]); return $app->redirectPath('prepare_download', ['token' => $token]); }