コード例 #1
0
ファイル: Writer.php プロジェクト: claroline/distribution
 private function writeMainParameters(DatabaseSettings $dbSettings, PlatformSettings $platformSettings, MailingSettings $mailSettings)
 {
     $defaultTemplateContent = file_get_contents($this->templateFile);
     $defaultParameters = Yaml::parse($defaultTemplateContent);
     $parameters = array('database_driver' => $dbSettings->getDriver(), 'database_host' => $dbSettings->getHost(), 'database_name' => $dbSettings->getName(), 'database_user' => $dbSettings->getUser(), 'database_password' => $dbSettings->getPassword(), 'database_port' => $dbSettings->getPort(), 'mailer_transport' => $mailSettings->getTransport(), 'mailer_encryption' => $mailSettings->getTransportOption('encryption'), 'mailer_auth_mode' => $mailSettings->getTransportOption('auth_mode'), 'mailer_host' => $mailSettings->getTransportOption('host'), 'mailer_port' => $mailSettings->getTransportOption('port'), 'mailer_user' => $mailSettings->getTransportOption('username'), 'mailer_password' => $mailSettings->getTransportOption('password'), 'locale' => $platformSettings->getLanguage(), 'secret' => md5(rand(0, 10000000)));
     $parameters = array_merge($defaultParameters['parameters'], $parameters);
     $this->doWrite(array('parameters' => $parameters), $this->mainFile);
 }
コード例 #2
0
 /**
  * @EXT\Route("/mail/server/submit", name="claro_admin_edit_parameters_mail_server")
  * @EXT\Method("POST")
  * @EXT\Template("ClarolineCoreBundle:Administration\Parameters:mailServerForm.html.twig")
  * @SEC\PreAuthorize("canOpenAdminTool('platform_parameters')")
  *
  * Updates the platform settings and redirects to the settings form.
  *
  * @return \Symfony\Component\HttpFoundation\RedirectResponse
  */
 public function submitMailServerAction()
 {
     $platformConfig = $this->configHandler->getPlatformConfig();
     $form = $this->formFactory->create(new AdminForm\MailServerType($platformConfig->getMailerTransport(), $this->configHandler->getLockedParamaters()), $platformConfig);
     $form->handleRequest($this->request);
     $data = array('transport' => $form['mailer_transport']->getData(), 'host' => $form['mailer_host']->getData(), 'username' => $form['mailer_username']->getData(), 'password' => $form['mailer_password']->getData(), 'auth_mode' => $form['mailer_auth_mode']->getData(), 'encryption' => $form['mailer_encryption']->getData(), 'port' => $form['mailer_port']->getData());
     $settings = new MailingSettings();
     $settings->setTransport($data['transport']);
     $settings->setTransportOptions($data);
     $errors = $settings->validate();
     if (count($errors) > 0) {
         foreach ($errors as $field => $error) {
             $trans = $this->translator->trans($error, array(), 'platform');
             $form->get('mailer_' . $field)->addError(new FormError($trans));
         }
         return array('form_mail' => $form->createView());
     }
     $checker = new MailingChecker($settings);
     $error = $checker->testTransport();
     if ($error != 1) {
         $session = $this->request->getSession();
         $session->getFlashBag()->add('error', $this->translator->trans($error, array(), 'platform'));
         return array('form_mail' => $form->createView());
     }
     $this->configHandler->setParameters(array('mailer_transport' => $data['transport'], 'mailer_host' => $data['host'], 'mailer_username' => $data['username'], 'mailer_password' => $data['password'], 'mailer_auth_mode' => $data['auth_mode'], 'mailer_encryption' => $data['encryption'], 'mailer_port' => $data['port']));
     $this->cacheManager->setParameter('is_mailer_available', true);
     return $this->redirect($this->generateUrl('claro_admin_index'));
 }