. */ namespace SP\Modules\Web\Controllers; use SP\Core\Acl\ActionsInterface; use SP\Core\Acl\UnauthorizedPageException; use SP\Core\Events\Event; use SP\Core\Events\EventMessage; use SP\Http\JsonResponse; use SP\Http\Request; use SP\Modules\Web\Controllers\Traits\ConfigTrait; /** * Class ConfigMailController * * @package SP\Modules\Web\Controllers */ class ConfigMailController extends SimpleControllerBase { use ConfigTrait; /** * saveAction */ public function saveAction() { $eventMessage = EventMessage::factory(); $configData = $this->config->getConfigData(); // Mail $mailEnabled = Request::analyzeBool('mail_enabled', false); $mailServer = Request::analyzeString('mail_server'); $mailPort = Request::analyzeInt('mail_port', 25); $mailUser = Request::analyzeString('mail_user'); $mailPass = Request::analyzeEncrypted('mail_pass'); $mailSecurity = Request::analyzeString('mail_security'); $mailFrom = Request::analyzeEmail('mail_from'); $mailRequests = Request::analyzeBool('mail_requestsenabled', false); $mailAuth = Request::analyzeBool('mail_authenabled', false); // Valores para la configuración del Correo if ($mailEnabled && (!$mailServer || !$mailFrom)) { $this->returnJsonResponse(JsonResponse::JSON_ERROR, __u('Faltan parámetros de Correo')); } if ($mailEnabled) { $configData->setMailEnabled(true); $configData->setMailRequestsEnabled($mailRequests); $configData->setMailServer($mailServer); $configData->setMailPort($mailPort); $configData->setMailSecurity($mailSecurity); $configData->setMailFrom($mailFrom); if ($mailAuth) { $configData->setMailAuthenabled($mailAuth); $configData->setMailUser($mailUser); $configData->setMailPass($mailPass); } if ($configData->isMailEnabled() === false) { $eventMessage->addDescription(__u('Correo habiltado')); } } elseif ($mailEnabled === false && $configData->isMailEnabled()) { $configData->setMailEnabled(false); $configData->setMailRequestsEnabled(false); $configData->setMailAuthenabled(false); $eventMessage->addDescription(__u('Correo deshabilitado')); } $this->saveConfig($configData, $this->config, function () use ($eventMessage) { $this->eventDispatcher->notifyEvent('save.config.mail', new Event($this, $eventMessage)); }); } protected function initialize() { try { $this->checkAccess(ActionsInterface::MAIL_CONFIG); } catch (UnauthorizedPageException $e) { $this->eventDispatcher->notifyEvent('exception', new Event($e)); $this->returnJsonResponseException($e); } } }