@extends('layouts.app') @section('title', 'Switch: '.$switch->hostname) @section('actions') @can('update', $switch)Bearbeiten@endcan @can(\App\Enums\Permission::SCAN_CREATE) Scan vorbereiten @endcan @endsection @section('content')

Gerätedaten

Kunde / Standort
{{ $switch->customer->name }} · {{ $switch->site?->name ?? '–' }}
Hersteller / Modell
{{ $switch->modelLabel() }}
Seriennummer
{{ $switch->serial_number ?: '–' }}
Hardware-Revision
{{ $switch->hardware_revision ?: '–' }}
Firmware
{{ $switch->firmware_version ?: '–' }}
Management-IP
{{ $switch->management_ip }}
MAC
{{ $switch->mac_address ?: '–' }}
Netz / VLAN
{{ $switch->network ?: '–' }} · {{ $switch->vlan ?: '–' }}
Gateway
{{ $switch->default_gateway ?: '–' }}
Protokolle
{{ implode(', ', (array) ($switch->management_protocols ?? [])) ?: '–' }}
SNMP
{{ $switch->snmp_version ? 'v'.$switch->snmp_version : '–' }} · {{ $switch->credential?->name ?? 'keine Zugangsdaten' }}
Geräteprofil
{{ $switch->deviceProfile?->label() ?? '–' }}

Topologie und Zustand

STP-Modus
{{ strtoupper((string) $switch->stp_mode) ?: '–' }} (Priorität {{ $switch->stp_priority ?? '–' }})
MSTP-Region
{{ $switch->mstp_region ?: '–' }}
Root-Bridge
{{ $switch->is_root_bridge ? 'ja' : 'nein' }} {{ $switch->root_bridge_id ? '('.$switch->root_bridge_id.')' : '' }}
Redundanz
{{ strtoupper((string) $switch->redundancy_protocol) ?: '–' }}
Uplink-Ports
{{ implode(', ', (array) ($switch->uplink_ports ?? [])) ?: '–' }}
Umgebung
{{ $switch->is_production ? 'Produktivnetz' : 'Labor' }} · Kritikalität {{ $switch->criticality }}
Zuletzt gesehen
{{ $switch->last_seen_at?->format('d.m.Y H:i') ?? '–' }}
Letzter Neustart
@if ($switch->last_reboot_detected_at) {{ $switch->last_reboot_detected_at->format('d.m.Y H:i') }} @else – @endif
@if ($switch->notes)

{{ $switch->notes }}

@endif

Offene Ports (letzter Scan)

@if ($openPorts->isEmpty())
Keine Portdaten vorhanden.
@else
@foreach ($openPorts as $port) @endforeach
PortProtokollDienstProdukt / Version
{{ $port->port }}{{ $port->protocol }} {{ $port->service_name ?: '–' }} {{ trim($port->product.' '.$port->version) ?: '–' }}
@endif

Offene Findings

@if ($findings->isEmpty())
Keine offenen Findings.
@else
@foreach ($findings as $finding) @endforeach
SchwereTitelKlassifizierungStatus
{{ $finding->severity->label() }} {{ $finding->title }} {{ $finding->classification->label() }} {{ $finding->status->label() }}
@endif

Letzte Scans

@if ($recentScans->isEmpty())
Noch nicht gescannt.
@else
@foreach ($recentScans as $target) @endforeach
ScanProfilStatusDatum
{{ $target->scanJob->name }} {{ $target->scanJob->profile->name }} {{ $target->scanJob->status->label() }} {{ $target->scanJob->started_at?->format('d.m.Y H:i') ?? '–' }}
@endif

Auffälligkeiten

@if ($incidents->isEmpty())
Keine Vorfälle erfasst.
@else
@foreach ($incidents as $incident) @endforeach
TypBeschreibungAbbruchZeitpunkt
{{ $incident->type }} {{ $incident->summary }} {{ $incident->triggered_abort ? 'ja' : 'nein' }} {{ $incident->started_at?->format('d.m. H:i') }}
@endif
@endsection