/** * {@inheritdoc} */ public function post(Application $app, Request $request) { $configuration = $this->getConfiguration(); $configuration['host'] = $request->request->get('host'); $configuration['port'] = $request->request->get('port'); $this->saveConfiguration($configuration); return $app->redirectPath('admin_searchengine_get'); }
public function getGlobals(Application $app, Request $request) { $form = $app['registry.manipulator']->createForm($app['conf']); if ('POST' === $request->getMethod()) { $form->bind($request); if ($form->isValid()) { $app['conf']->set('registry', $app['registry.manipulator']->getRegistryData($form)); return $app->redirectPath('setup_display_globals'); } } return $app['twig']->render('admin/setup.html.twig', ['form' => $form->createView()]); }
/** * {@inheritdoc} */ public function post(Application $app, Request $request) { $configuration = $this->getConfiguration(); $configuration['date_fields'] = []; foreach ($request->request->get('date_fields', []) as $field) { $configuration['date_fields'][] = $field; } $configuration['default_sort'] = $request->request->get('default_sort'); $configuration['stemming_enabled'] = (int) (bool) $request->request->get('stemming_enabled'); $this->saveConfiguration($configuration); return $app->redirectPath('admin_searchengine_get'); }
/** * @param Request $request * @param PhraseaApplication $app * @return RedirectResponse|null */ public function redirectOnLogRequests(Request $request, PhraseaApplication $app) { if (!$request->query->has('LOG')) { return null; } if ($app->getAuthenticator()->isAuthenticated()) { $app->getAuthenticator()->closeAccount(); } if (null === ($token = $app['repo.tokens']->findValidToken($request->query->get('LOG')))) { $app->addFlash('error', $app->trans('The URL you used is out of date, please login')); return $app->redirectPath('homepage'); } /** @var Token $token */ $app->getAuthenticator()->openAccount($token->getUser()); switch ($token->getType()) { case TokenManipulator::TYPE_FEED_ENTRY: return $app->redirectPath('lightbox_feed_entry', ['entry_id' => $token->getData()]); case TokenManipulator::TYPE_VALIDATE: case TokenManipulator::TYPE_VIEW: return $app->redirectPath('lightbox_validation', ['basket' => $token->getData()]); } return null; }
/** * {@inheritdoc} */ public function post(Application $app, Request $request) { $configuration = $this->getConfiguration(); $configuration['charset_tables'] = []; $configuration['date_fields'] = []; foreach ($request->request->get('charset_tables', []) as $table) { $configuration['charset_tables'][] = $table; } foreach ($request->request->get('date_fields', []) as $field) { $configuration['date_fields'][] = $field; } $configuration['host'] = $request->request->get('host'); $configuration['port'] = $request->request->get('port'); $configuration['rt_host'] = $request->request->get('rt_host'); $configuration['rt_port'] = $request->request->get('rt_port'); $this->saveConfiguration($configuration); return $app->redirectPath('admin_searchengine_get'); }
public function doInstall(Application $app, Request $request) { set_time_limit(360); $servername = $request->getScheme() . '://' . $request->getHttpHost() . '/'; $abConn = $dbConn = null; $hostname = $request->request->get('ab_hostname'); $port = $request->request->get('ab_port'); $user_ab = $request->request->get('ab_user'); $ab_password = $request->request->get('ab_password'); $appbox_name = $request->request->get('ab_name'); $databox_name = $request->request->get('db_name'); try { $abConn = $app['dbal.provider']->get(['host' => $hostname, 'port' => $port, 'user' => $user_ab, 'password' => $ab_password, 'dbname' => $appbox_name]); $abConn->connect(); } catch (\Exception $e) { return $app->redirectPath('install_step2', ['error' => $app->trans('Appbox is unreachable')]); } try { if ($databox_name) { $dbConn = $app['dbal.provider']->get(['host' => $hostname, 'port' => $port, 'user' => $user_ab, 'password' => $ab_password, 'dbname' => $databox_name]); $dbConn->connect(); } } catch (\Exception $e) { return $app->redirectPath('install_step2', ['error' => $app->trans('Databox is unreachable')]); } $email = $request->request->get('email'); $password = $request->request->get('password'); $template = $request->request->get('db_template'); $dataPath = $request->request->get('datapath_noweb'); try { $installer = $app['phraseanet.installer']; $installer->setPhraseaIndexerPath($request->request->get('binary_phraseanet_indexer')); $binaryData = []; foreach (['php_binary' => $request->request->get('binary_php'), 'phraseanet_indexer' => $request->request->get('binary_phraseanet_indexer'), 'swf_extract_binary' => $request->request->get('binary_swfextract'), 'pdf2swf_binary' => $request->request->get('binary_pdf2swf'), 'swf_render_binary' => $request->request->get('binary_swfrender'), 'unoconv_binary' => $request->request->get('binary_unoconv'), 'ffmpeg_binary' => $request->request->get('binary_ffmpeg'), 'mp4box_binary' => $request->request->get('binary_MP4Box'), 'pdftotext_binary' => $request->request->get('binary_xpdf'), 'recess_binary' => $request->request->get('binary_recess')] as $key => $path) { $binaryData[$key] = $path; } $user = $installer->install($email, $password, $abConn, $servername, $dataPath, $dbConn, $template, $binaryData); $app['authentication']->openAccount($user); return $app->redirectPath('admin', ['section' => 'taskmanager', 'notice' => 'install_success']); } catch (\Exception $e) { return $app->redirectPath('install_step2', ['error' => $app->trans('an error occured : %message%', ['%message%' => $e->getMessage()])]); } }
/** * Authenticate to phraseanet * * @param Application $app A Silex application where the controller is mounted on * @param Request $request The current request * @return RedirectResponse */ public function authenticate(PhraseaApplication $app, Request $request) { $form = $app->form(new PhraseaAuthenticationForm()); $redirector = function (array $params = []) use($app) { return $app->redirectPath('homepage', $params); }; try { return $this->doAuthentication($app, $request, $form, $redirector); } catch (AuthenticationException $e) { return $e->getResponse(); } }
/** * Reset Email * * @param Application $app * @param Request $request * @return RedirectResponse */ public function resetEmail(PhraseaApplication $app, Request $request) { if (null === ($password = $request->request->get('form_password')) || null === ($email = $request->request->get('form_email')) || null === ($emailConfirm = $request->request->get('form_email_confirm'))) { $app->abort(400, $app->trans('Could not perform request, please contact an administrator.')); } $user = $app['authentication']->getUser(); if (!$app['auth.password-encoder']->isPasswordValid($user->getPassword(), $password, $user->getNonce())) { $app->addFlash('error', $app->trans('admin::compte-utilisateur:ftp: Le mot de passe est errone')); return $app->redirectPath('account_reset_email'); } if (!\Swift_Validate::email($email)) { $app->addFlash('error', $app->trans('forms::l\'email semble invalide')); return $app->redirectPath('account_reset_email'); } if ($email !== $emailConfirm) { $app->addFlash('error', $app->trans('forms::les emails ne correspondent pas')); return $app->redirectPath('account_reset_email'); } $date = new \DateTime('1 day'); $token = $app['tokens']->getUrlToken(\random::TYPE_EMAIL, $app['authentication']->getUser()->getId(), $date, $app['authentication']->getUser()->getEmail()); $url = $app->url('account_reset_email', ['token' => $token]); try { $receiver = Receiver::fromUser($app['authentication']->getUser()); } catch (InvalidArgumentException $e) { $app->addFlash('error', $app->trans('phraseanet::erreur: echec du serveur de mail')); return $app->redirectPath('account_reset_email'); } $mail = MailRequestEmailUpdate::create($app, $receiver, null); $mail->setButtonUrl($url); $mail->setExpiration($date); $app['notification.deliverer']->deliver($mail); $app->addFlash('info', $app->trans('admin::compte-utilisateur un email de confirmation vient de vous etre envoye. Veuillez suivre les instructions contenue pour continuer')); return $app->redirectPath('account'); }
return call_user_func(function ($environment = PhraseaApplication::ENV_PROD) { $app = new PhraseaApplication($environment); $app->loadPlugins(); $app['exception_handler'] = $app->share(function ($app) { return new PhraseaExceptionHandlerSubscriber($app['phraseanet.exception_handler']); }); $app['monolog'] = $app->share($app->extend('monolog', function (Logger $monolog) { $monolog->pushProcessor(new WebProcessor()); return $monolog; })); $app->before(function (Request $request) use($app) { if (0 === strpos($request->getPathInfo(), '/setup')) { if (!$app['phraseanet.configuration-tester']->isInstalled()) { if (!$app['phraseanet.configuration-tester']->isBlank()) { if ('setup_upgrade_instructions' !== $app['request']->attributes->get('_route')) { return $app->redirectPath('setup_upgrade_instructions'); } } } elseif (!$app['phraseanet.configuration-tester']->isBlank()) { return $app->redirectPath('homepage'); } } else { if (false === strpos($request->getPathInfo(), '/include/minify')) { $app['firewall']->requireSetup(); } } }, Application::EARLY_EVENT); $app->bindRoutes(); if (PhraseaApplication::ENV_DEV === $app->getEnvironment()) { $app->register($p = new WebProfilerServiceProvider(), ['profiler.cache_dir' => $app['cache.path'] . '/profiler']); $app->mount('/_profiler', $p);