. */ namespace SP\Core; use Klein\Klein; use SP\Core\Bootstrap\BootstrapBase; use SP\Http\Request; use SP\Http\RequestInterface; use SP\Util\Util; /** * Base module for HTTP based modules */ abstract class HttpModuleBase extends ModuleBase { protected Request $request; protected Klein $router; public function __construct( Application $application, ProvidersHelper $providersHelper, RequestInterface $request, Klein $router ) { $this->request = $request; $this->router = $router; parent::__construct($application, $providersHelper); } /** * Comprobar si el modo mantenimiento está activado * Esta función comprueba si el modo mantenimiento está activado. * * @throws \JsonException */ protected function checkMaintenanceMode(): bool { if ($this->configData->isMaintenance()) { BootstrapBase::$LOCK = Util::getAppLock(); return !$this->request->isAjax() || !(BootstrapBase::$LOCK !== false && BootstrapBase::$LOCK->userId > 0 && $this->context->isLoggedIn() && BootstrapBase::$LOCK->userId === $this->context->getUserData()->getId()); } return false; } }