getRequestValue('id');
if (($this->getRequestValue('action') === 'module-settings' || ($this->getRequestValue('loadData') && $this->getRequestValue('ajax') == '1')))
{
try
{
//check storage
$invalidStoragePermissions = $this->getInvalidStoragePermitions();
if ($invalidStoragePermissions)
{
return $this->getInvalidStoragePermissionsError($invalidStoragePermissions);
}
//check server type
if (!$this->isCorrectServerType())
{
return $this->getInvalidServerTypeError();
}
$requirementsHandler = new \ModulesGarden\Servers\KerioEmail\Core\App\Requirements\Checker();
if ($requirementsHandler->getUnfulfilledRequirements())
{
$data = $this->buildErrorMessage(implode('
', $requirementsHandler->getUnfulfilledRequirements()));
return $this->returnAjaxResponse($data);
}
$this->updateProductType();
/**
*
* disabled because `packages` folder wasn't migrated
*/
//$this->addRequiredCustomFields();
//run installer
$installer = new ModuleInstaller();
$installer->makeInstall();
if (!$installer->isInstallCorrect())
{
return $this->buildFailedQueriesMessage($installer->getFailedQueries());
}
}
catch (\Exception $exc)
{
$data = $this->buildErrorMessage($exc->getMessage());
return $this->returnAjaxResponse($data);
}
try
{
$this->setAppParam('IntegrationControlerName', \ModulesGarden\Servers\KerioEmail\App\Http\Actions\ConfigOptions::class);
$this->setAppParam('IntegrationControlerMethod', 'runExecuteProcess');
$configOptionsController = new \ModulesGarden\Servers\KerioEmail\App\Http\Actions\ConfigOptions();
$result = $configOptionsController->execute();
return $result;
}
catch (\Exception $exc)
{
$data = $this->buildErrorMessage($exc->getMessage());
$response = new JsonResponse();
$response->setData($data);
$resolver = new ResponseResolver($response);
$resolver->resolve();
}
}
else if ($this->getRequestValue('action') === 'save')
{
if (!$this->isCorrectServerType())
{
return [];
}
return [\ModulesGarden\Servers\KerioEmail\App\Http\Actions\ConfigOptions::class, 'runExecuteProcess'];
}
return [];
}
public function getInvalidStoragePermitions()
{
$requiredPaths = [
ModuleConstants::getFullPath('storage'),
ModuleConstants::getFullPath('storage', 'app'),
ModuleConstants::getFullPath('storage', 'crons'),
ModuleConstants::getFullPath('storage', 'logs')
];
$invalidPermissions = [];
$lang = ServiceLocator::call('lang');
foreach ($requiredPaths as $path)
{
if (!is_writable($path))
{
$invalidPermissions[] = $lang->addReplacementConstant('storage_path', $path)->absoluteT('permissionsStorage');
}
if (!is_readable($path))
{
$invalidPermissions[] = $lang->addReplacementConstant('storage_path', $path)->absoluteT('permissionsStorageReadable');
}
}
return $invalidPermissions;
}
public function buildFailedQueriesMessage($failedQueries = [])
{
$content = '';
foreach ($failedQueries as $query)
{
$content .= '