Fix: ClamAV wird beim Update automatisch installiert, UI nur Ein/Aus
ensure_system() installiert clamav-daemon falls nicht vorhanden, deaktiviert aber den Dienst. User sieht nur noch Ein/Ausschalten. Install-Button, $installed-Property und install()-Methode entfernt. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>main v1.1.340
parent
fa65bc1c2e
commit
ce66a84c8d
|
|
@ -10,7 +10,6 @@ use Livewire\Component;
|
|||
#[Title('Virenschutz · Mailwolt')]
|
||||
class ClamavManager extends Component
|
||||
{
|
||||
public bool $installed = false;
|
||||
public bool $running = false;
|
||||
public bool $enabled = false;
|
||||
public string $dbDate = '—';
|
||||
|
|
@ -18,7 +17,6 @@ class ClamavManager extends Component
|
|||
public ?int $ramMb = null;
|
||||
public string $lastError = '';
|
||||
public string $lastSuccess = '';
|
||||
public bool $installing = false;
|
||||
public bool $starting = false;
|
||||
public int $startSecs = 0;
|
||||
|
||||
|
|
@ -52,26 +50,10 @@ class ClamavManager extends Component
|
|||
$this->lastSuccess = '';
|
||||
$this->running = $this->serviceActive();
|
||||
$this->enabled = $this->serviceEnabled();
|
||||
$this->installed = $this->isInstalled();
|
||||
$this->ramMb = $this->running ? $this->readRamMb() : null;
|
||||
[$this->dbDate, $this->dbVersion] = $this->readDbInfo();
|
||||
}
|
||||
|
||||
public function install(): void
|
||||
{
|
||||
$this->installing = true;
|
||||
$out = [];
|
||||
@exec('sudo -n /usr/local/sbin/mailwolt-clamav install 2>&1', $out, $rc);
|
||||
$this->installing = false;
|
||||
if ($rc !== 0) {
|
||||
$this->lastError = implode(' ', $out) ?: 'Installation fehlgeschlagen.';
|
||||
} else {
|
||||
$this->dispatch('toast', type: 'success', badge: 'ClamAV',
|
||||
title: 'Installiert', text: 'ClamAV wurde installiert. Sie können ihn jetzt aktivieren.');
|
||||
}
|
||||
$this->refresh();
|
||||
}
|
||||
|
||||
public function enable(): void
|
||||
{
|
||||
$this->lastError = '';
|
||||
|
|
|
|||
|
|
@ -47,26 +47,6 @@
|
|||
</div>
|
||||
<div style="padding:16px 18px">
|
||||
|
||||
@if(!$installed)
|
||||
<div style="display:flex;flex-direction:column;gap:14px">
|
||||
<div style="display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:var(--mw-bg4);border:1px solid var(--mw-b2);border-radius:8px">
|
||||
<div style="display:flex;align-items:center;gap:10px">
|
||||
<div style="width:8px;height:8px;border-radius:50%;background:#6b7280;flex-shrink:0"></div>
|
||||
<div>
|
||||
<div style="font-size:13px;font-weight:500;color:var(--mw-t2)">ClamAV nicht installiert</div>
|
||||
<div style="font-size:11.5px;color:var(--mw-t4);margin-top:2px">Paket <code style="font-size:11px;background:var(--mw-bg3);padding:1px 5px;border-radius:4px">clamav clamav-daemon</code> fehlt.</div>
|
||||
</div>
|
||||
</div>
|
||||
<button wire:click="install" wire:loading.attr="disabled" wire:target="install"
|
||||
class="mbx-btn-primary">
|
||||
<svg width="12" height="12" viewBox="0 0 14 14" fill="none" wire:loading.class="animate-spin" wire:target="install"><path d="M7 1v8M4 6l3 3 3-3" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round"/><path d="M2 11h10" stroke="currentColor" stroke-width="1.3" stroke-linecap="round"/></svg>
|
||||
<span wire:loading.remove wire:target="install">Installieren</span>
|
||||
<span wire:loading wire:target="install">Installiert… (ca. 1 Min.)</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@else
|
||||
<div style="display:flex;flex-direction:column;gap:16px">
|
||||
|
||||
{{-- Status-Zeile --}}
|
||||
|
|
@ -137,7 +117,6 @@
|
|||
</div>
|
||||
|
||||
</div>
|
||||
@endif
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -253,6 +253,17 @@ UNIT
|
|||
systemctl start mailwolt-ws
|
||||
echo "[✓] mailwolt-ws Service gestartet."
|
||||
fi
|
||||
|
||||
# ClamAV installieren falls nicht vorhanden (läuft deaktiviert, User schaltet ein/aus)
|
||||
if ! dpkg -l clamav-daemon 2>/dev/null | grep -q '^ii'; then
|
||||
echo "[…] ClamAV wird installiert…"
|
||||
DEBIAN_FRONTEND=noninteractive apt-get install -y clamav clamav-daemon clamav-freshclam 2>&1 | sed 's/^/ /'
|
||||
systemctl enable clamav-freshclam 2>/dev/null || true
|
||||
systemctl start clamav-freshclam 2>/dev/null || true
|
||||
systemctl disable clamav-daemon 2>/dev/null || true
|
||||
systemctl stop clamav-daemon 2>/dev/null || true
|
||||
echo "[✓] ClamAV installiert (deaktiviert – User kann es einschalten)."
|
||||
fi
|
||||
}
|
||||
|
||||
# -------- Guards --------------------------------------------------------------
|
||||
|
|
|
|||
Loading…
Reference in New Issue