. */ namespace SP\Core; use Klein\Klein; use SP\Domain\Core\Exceptions\SPException; use SP\Domain\Core\Ports\AppLockHandler; use SP\Domain\Http\Ports\RequestService; /** * Base module for HTTP based modules */ abstract class HttpModuleBase extends ModuleBase { public function __construct( Application $application, ProvidersHelper $providersHelper, protected readonly RequestService $request, protected readonly Klein $router, protected readonly AppLockHandler $appLock ) { parent::__construct($application, $providersHelper); } /** * Comprobar si el modo mantenimiento está activado * Esta función comprueba si el modo mantenimiento está activado. * * @return bool * @throws SPException */ protected function checkMaintenanceMode(): bool { if ($this->configData->isMaintenance()) { $lock = $this->appLock->getLock(); return !$this->request->isAjax() || !($lock !== false && $lock > 0 && $this->context->isLoggedIn() && $lock === $this->context->getUserData()->id); } return false; } }