From 30ba17c4b01e57274f61683af7e242388fdbf965 Mon Sep 17 00:00:00 2001 From: nuxsmin Date: Wed, 1 Aug 2018 10:50:47 +0200 Subject: [PATCH] * [ADD] Added some PHP extension checks --- .../web/Controllers/ConfigManagerController.php | 3 +-- app/modules/web/Controllers/ControllerBase.php | 6 ++++++ .../web/Controllers/SimpleControllerBase.php | 6 ++++++ .../web/Controllers/StatusController.php | 17 +++++++++++++++++ lib/SP/Util/Checks.php | 10 ---------- 5 files changed, 30 insertions(+), 12 deletions(-) diff --git a/app/modules/web/Controllers/ConfigManagerController.php b/app/modules/web/Controllers/ConfigManagerController.php index 5e81c481..93a092e1 100644 --- a/app/modules/web/Controllers/ConfigManagerController.php +++ b/app/modules/web/Controllers/ConfigManagerController.php @@ -44,7 +44,6 @@ use SP\Services\UserGroup\UserGroupService; use SP\Services\UserProfile\UserProfileService; use SP\Storage\Database\DatabaseUtil; use SP\Storage\Database\DBStorageInterface; -use SP\Util\Checks; use SP\Util\Util; /** @@ -186,7 +185,7 @@ final class ConfigManagerController extends ControllerBase $template->setBase('config'); $template->addTemplate('ldap'); - $template->assign('ldapIsAvailable', Checks::ldapIsAvailable()); + $template->assign('ldapIsAvailable', $this->extensionChecker->checkIsAvailable('ldap')); $template->assign('userGroups', SelectItemAdapter::factory(UserGroupService::getItemsBasic())->getItemsFromModel()); $template->assign('userProfiles', SelectItemAdapter::factory(UserProfileService::getItemsBasic())->getItemsFromModel()); diff --git a/app/modules/web/Controllers/ControllerBase.php b/app/modules/web/Controllers/ControllerBase.php index 96088b25..1accb068 100644 --- a/app/modules/web/Controllers/ControllerBase.php +++ b/app/modules/web/Controllers/ControllerBase.php @@ -36,6 +36,7 @@ use SP\Core\Context\ContextInterface; use SP\Core\Context\SessionContext; use SP\Core\Events\EventDispatcher; use SP\Core\Exceptions\FileNotFoundException; +use SP\Core\PhpExtensionChecker; use SP\Core\UI\Theme; use SP\DataModel\ProfileData; use SP\Http\Request; @@ -127,6 +128,10 @@ abstract class ControllerBase * @var Request */ protected $request; + /** + * @var PhpExtensionChecker + */ + protected $extensionChecker; /** * Constructor @@ -153,6 +158,7 @@ abstract class ControllerBase $this->router = $this->dic->get(Klein::class); $this->view = $this->dic->get(Template::class); $this->request = $this->dic->get(Request::class); + $this->extensionChecker = $this->dic->get(PhpExtensionChecker::class); $this->view->setBase(strtolower($this->controllerName)); diff --git a/app/modules/web/Controllers/SimpleControllerBase.php b/app/modules/web/Controllers/SimpleControllerBase.php index cbf14708..d36224c0 100644 --- a/app/modules/web/Controllers/SimpleControllerBase.php +++ b/app/modules/web/Controllers/SimpleControllerBase.php @@ -34,6 +34,7 @@ use SP\Core\Acl\UnauthorizedPageException; use SP\Core\Context\ContextInterface; use SP\Core\Context\SessionContext; use SP\Core\Events\EventDispatcher; +use SP\Core\PhpExtensionChecker; use SP\Core\UI\Theme; use SP\Http\Request; use SP\Mvc\Controller\ControllerTrait; @@ -91,6 +92,10 @@ abstract class SimpleControllerBase * @var Request */ protected $request; + /** + * @var PhpExtensionChecker + */ + protected $extensionChecker; /** * SimpleControllerBase constructor. @@ -116,6 +121,7 @@ abstract class SimpleControllerBase $this->router = $this->dic->get(Klein::class); $this->request = $this->dic->get(Request::class); $this->acl = $this->dic->get(Acl::class); + $this->extensionChecker = $this->dic->get(PhpExtensionChecker::class); if (method_exists($this, 'initialize')) { $this->initialize(); diff --git a/app/modules/web/Controllers/StatusController.php b/app/modules/web/Controllers/StatusController.php index fae7a18d..8fe5fb5d 100644 --- a/app/modules/web/Controllers/StatusController.php +++ b/app/modules/web/Controllers/StatusController.php @@ -25,6 +25,7 @@ namespace SP\Modules\Web\Controllers; use GuzzleHttp\Client; +use SP\Core\Exceptions\CheckException; use SP\Http\JsonResponse; use SP\Modules\Web\Controllers\Traits\JsonTrait; use SP\Util\Util; @@ -45,6 +46,14 @@ final class StatusController extends SimpleControllerBase */ public function checkReleaseAction() { + try { + $this->extensionChecker->checkCurlAvailable(); + } catch (CheckException $e) { + processException($e); + + $this->returnJsonResponseException($e); + } + $request = $this->dic->get(Client::class) ->request('GET', Util::getAppInfo('appupdates')); @@ -92,6 +101,14 @@ final class StatusController extends SimpleControllerBase */ public function checkNoticesAction() { + try { + $this->extensionChecker->checkCurlAvailable(); + } catch (CheckException $e) { + processException($e); + + $this->returnJsonResponseException($e); + } + $request = $this->dic->get(Client::class) ->request('GET', Util::getAppInfo('appnotices')); diff --git a/lib/SP/Util/Checks.php b/lib/SP/Util/Checks.php index 8f49c44b..83171d4e 100644 --- a/lib/SP/Util/Checks.php +++ b/lib/SP/Util/Checks.php @@ -108,16 +108,6 @@ final class Checks return $missing; } - /** - * Comprobar si el módulo de LDAP está instalado. - * - * @return bool - */ - public static function ldapIsAvailable() - { - return extension_loaded('ldap'); - } - /** * Comprobar si el módulo CURL está instalado. *