📁
SKYSHELL MANAGER
PHP v8.2.31
Create
Create
Path:
root
/
home
/
thevaxnx
/
nativize.com
/
staging
/
wp-includes
/
js
/
tinymce
/
themes
/
Name
Size
Perm
Actions
📁
inlite
-
0755
🗑️
🏷️
🔒
📁
modern
-
0755
🗑️
🏷️
🔒
📄
wp-links-opml.php
6.83 KB
0444
🗑️
🏷️
⬇️
✏️
🔒
Edit: AutoReissueCommand.php
<?php namespace App\Command; use App\Exception\CertificateException; use App\Service\Certificate\Certificate; use App\Service\Certificate\CertificateTransfer; use App\Service\Certificate\Reissue; use App\Service\Certificate\SyncCertificate; use Psr\Log\LoggerInterface; use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; use App\Traits\MessageFormatterTrait; use App\Entity\Certificate as CertificateEntity; use App\Service\State\StateUser; #[AsCommand( name: 'app:auto-reissue', description: 'Auto reissue certificate command', )] class AutoReissueCommand extends Command { use MessageFormatterTrait; public function __construct( private readonly Reissue $reissue, private readonly Certificate $certificate, private readonly SyncCertificate $syncCertificate, private readonly LoggerInterface $logger, private readonly StateUser $stateUser, ){ parent::__construct(); } protected function configure(): void { $this ->setHelp('Usage: <info>/usr/local/cpanel/3rdparty/bin/php /usr/local/cpanel/whostmgr/cgi/ncssl/source/bin/console app:auto-reissue</info>'); } /** * @throws CertificateException */ protected function execute(InputInterface $input, OutputInterface $output): int { $output->write($this->prepareMessage('Auto reissue cron started...', self::MSG_TYPE_INFO)); $expiringCertificates = []; try { $expiringCertificates = $this->certificate->getExpiringCertificates(); $ncIds = array_map( static fn (CertificateEntity $certificate): ?int => $certificate->getNcId(), $expiringCertificates ); $this->logger->info('Found expiring certificates', [ 'count' => count($expiringCertificates), 'ncIds' => $ncIds, ]); } catch (\Throwable $exception) { $this->logger->error('Error fetching certificates ready for reissue: ' . $exception->getMessage()); $output->write($this->prepareMessage('Error initializing Cpanel API adapter. Check logs for details.', self::MSG_TYPE_ERROR)); } $certificates = []; try { $this->syncCertificate->syncForReissueCandidates($expiringCertificates); $certificates = $this->certificate->getCertificatesReadyForReissue(); } catch (\Throwable $exception) { $this->logger->error('Error syncing certificates before auto-reissue: ' . $exception->getMessage()); } foreach ($certificates as $certificate) { $this->startReissue($certificate); } $output->write($this->prepareMessage('Auto reissue cron finished...', self::MSG_TYPE_INFO)); return Command::SUCCESS; } protected function startReissue(CertificateEntity $certificate): void { $logContext = ['id' => $certificate->getId(), 'ncId' => $certificate->getNcId()]; $certificateTransfer = new CertificateTransfer([ 'userName' => $certificate->getUser()->getName(), 'domainName' => $certificate->getCommonName(), 'certificateId' => $certificate->getNcId(), 'certificateType' => $certificate->getType(), 'years' => $certificate->getYears(), 'vendor' => $certificate->getVendor(), 'ncUser' => $certificate->getNcUser(), 'commonName' => $certificate->getCommonName(), ]); try { $this->stateUser->setUser($certificate->getUser()); $this->reissue->reissueStart($certificateTransfer); $this->certificate->markAutoReissueAsStarted($certificate); $this->logger->info('Successfully started reissue for certificate', $logContext); } catch (\Throwable $exception) { $this->logger->error('Failed to start reissue for certificate: ' . $exception->getMessage(), $logContext); } } }
Save