Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
overpastor
/
wp
/
wp.
/
wp-content
/
plugins
/
imunify-security
/
inc
/
App
/
Model
:
MalwareItem.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php /** * Copyright (с) Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2025 All Rights Reserved * * Licensed under CLOUD LINUX LICENSE AGREEMENT * https://www.cloudlinux.com/legal/ */ namespace CloudLinux\Imunify\App\Model; /** * Malware item model. */ class MalwareItem { /** * Detection timestamp. * * @var int */ private $detectedAt; /** * File. * * @var string */ private $file; /** * Resource type. * * @var string */ private $resourceType; /** * Malicious. * * @var bool */ private $malicious; /** * Status. * * @var string */ private $status; /** * Cleaned at timestamp. * * @var int|null */ private $cleanedAt; /** * Malware signature. * * @var string */ private $signature; /** * Database name. * * @var string */ private $dbName; /** * Check if the resource type is file. * * @return bool */ private function isFile() { return 'file' === $this->resourceType; } /** * Get the path. * * File path if the resource type is file, database name otherwise. * * @return string */ public function getPath() { return $this->isFile() ? $this->file : $this->dbName; } /** * Get the signature. * * @return string */ public function getSignature() { return $this->signature; } /** * Get the detection timestamp. * * @return int */ public function getDetectedAt() { return $this->detectedAt; } /** * Get the file. * * @return string */ public function getFile() { return $this->file; } /** * Get the resource type. * * @return string */ public function getResourceType() { return $this->resourceType; } /** * Get if the item is malicious. * * @return bool */ public function isMalicious() { return $this->malicious; } /** * Get the status. * * @return string */ public function getStatus() { return $this->status; } /** * Get the status label. * * @return string * * @since 2.0.0 */ public function getStatusLabel() { switch ( $this->status ) { case 'cleanup_done': return esc_html__( 'Cleaned', 'imunify-security' ); case 'cleanup_removed': return esc_html__( 'Content removed', 'imunify-security' ); case 'cleanup_started': case 'cleanup_pending': return esc_html__( 'Cleanup in progress', 'imunify-security' ); case 'found': case 'infected': case 'cleanup_requires_myimunify_protection': return esc_html__( 'Infected', 'imunify-security' ); case 'quarantined': return esc_html__( 'Quarantined', 'imunify-security' ); default: return esc_html__( 'Unknown', 'imunify-security' ); } } /** * Get the status extra CSS class. * * @param string $baseClass Base CSS class. * * @return string * * @since 2.0.0 */ public function getStatusExtraCssClass( $baseClass ) { switch ( $this->status ) { case 'found': case 'infected': case 'cleanup_requires_myimunify_protection': return $baseClass . '--infected'; default: return ''; } } /** * Get the cleaned at timestamp. * * @return int|null */ public function getCleanedAt() { return $this->cleanedAt; } /** * Get the last action timestamp (cleaned or detected). * * @return int * * @since 2.0.0 */ public function getLastActionDate() { return is_null( $this->cleanedAt ) ? $this->detectedAt : $this->cleanedAt; } /** * Check if the malware was cleaned. * * @return bool True if the malware was cleaned. */ public function isCleaned() { return in_array( $this->status, array( 'cleanup_removed', 'cleanup_done' ), true ); } /** * Convert to array * * @return array */ public function toArray() { return array( 'created' => $this->detectedAt, 'file' => $this->file, 'resource_type' => $this->resourceType, 'malicious' => $this->malicious, 'status' => $this->status, 'cleaned_at' => $this->cleanedAt, 'type' => $this->signature, 'db_name' => $this->dbName, ); } /** * Create from array * * @param array $data Data. * * @return self */ public static function fromArray( $data ) { $result = new self(); $result->detectedAt = isset( $data['created'] ) ? intval( $data['created'] ) : 0; $result->file = isset( $data['file'] ) ? $data['file'] : ''; $result->resourceType = isset( $data['resource_type'] ) ? $data['resource_type'] : ''; $result->malicious = isset( $data['malicious'] ) && (bool) $data['malicious']; $result->status = isset( $data['status'] ) ? $data['status'] : ''; $result->cleanedAt = isset( $data['cleaned_at'] ) ? intval( $data['cleaned_at'] ) : null; $result->signature = isset( $data['type'] ) ? $data['type'] : ''; $result->dbName = isset( $data['db_name'] ) ? $data['db_name'] : ''; return $result; } }