Source of file HealthCheckItemRunner.php
Size: 2,189 Bytes - Last Modified: 2021-12-23T10:41:57+00:00
/var/www/docs.ssmods.com/process/src/src/Checks/HealthCheckItemRunner.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 | <?php namespace Sunnysideup\HealthCheckProvider\Checks; use SilverStripe\Core\ClassInfo; use SilverStripe\Core\Config\Configurable; use SilverStripe\Core\Extensible; use SilverStripe\Core\Injector\Injectable; use SilverStripe\ORM\SS_List; use Sunnysideup\HealthCheckProvider\Model\HealthCheckItemProvider; class HealthCheckItemRunner { use Extensible; use Injectable; use Configurable; protected $healthCheckItemProvider; public function __construct(HealthCheckItemProvider $healthCheckItemProvider) { $this->healthCheckItemProvider = $healthCheckItemProvider; } public function IsInstalled(): bool { foreach ($this->nameSpacesRequired() as $nameSpace) { if (! $this->nameSpaceExists($nameSpace)) { return false; } } return true; } public function IsEnabled(): bool { return $this->IsInstalled(); } /** * @return mixed */ public function getCalculatedAnswer() { return ''; } protected function nameSpacesRequired(): array { return []; } protected function nameSpaceExists(string $nameSpace): bool { $array = ClassInfo::allClasses(); $nameSpace = rtrim($nameSpace, '\\') . '\\'; foreach ($array as $className) { if (stripos($className, $nameSpace) === 0) { return true; } } return false; } protected function turnPagesIntoArray(SS_List $pages): array { $array = []; foreach ($pages as $page) { if ($page->IsPublished()) { $array[$page->ID] = [ 'MenuTitle' => $page->MenuTitle, 'CMSEditLink' => $page->CMSEditLink(), 'Link' => $page->Link(), ]; } } return $array; } protected function checkPassword(string $pwd): bool { if (strlen($pwd) < 16) { return false; } if (! preg_match('#\d+#', $pwd)) { return false; } return (bool) preg_match('#[a-zA-Z]+#', $pwd); } } |