/**
  * 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()]);
 }
Example #2
0
 /**
  * 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]);
 }