addMandatoryAuthentication($controllers); $controllers->post('/', 'controller.prod.download:checkDownload') ->bind('check_download'); return $controllers; } /** * 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['manipulator.token']->createDownloadToken($app['authentication']->getUser(), serialize($list)); $app['dispatcher']->dispatch(PhraseaEvents::EXPORT_CREATE, new ExportEvent($app['authentication']->getUser(), $ssttid, $lst, $subdefs, $download->getExportName())); return $app->redirectPath('prepare_download', ['token' => $token->getValue()]); } }