()
| 692 | } |
| 693 | |
| 694 | private static function isVirusScanEnabled(): bool |
| 695 | { |
| 696 | // 1) Container env override (most explicit) |
| 697 | $env = getenv('VIRUS_SCAN_ENABLED'); |
| 698 | if ($env !== false && $env !== '') { |
| 699 | // Accept "1", "true", "0", "false", etc. |
| 700 | $envBool = filter_var($env, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE); |
| 701 | return $envBool === true; |
| 702 | } |
| 703 | |
| 704 | // 2) PHP constant override (non-container / legacy setups) |
| 705 | if (defined('VIRUS_SCAN_ENABLED')) { |
| 706 | return (bool)VIRUS_SCAN_ENABLED; |
| 707 | } |
| 708 | |
| 709 | // 3) Admin configuration toggle |
| 710 | if (!class_exists(AdminModel::class)) { |
| 711 | return false; |
| 712 | } |
| 713 | |
| 714 | $cfg = AdminModel::getConfig(); |
| 715 | if (!is_array($cfg) || isset($cfg['error'])) { |
| 716 | return false; |
| 717 | } |
| 718 | |
| 719 | if (empty($cfg['clamav']) || !is_array($cfg['clamav'])) { |
| 720 | return false; |
| 721 | } |
| 722 | |
| 723 | return !empty($cfg['clamav']['scanUploads']); |
| 724 | } |
| 725 | |
| 726 | private static function getVirusScanExcludeRules(): array |
| 727 | { |
no test coverage detected