{{-- resources/views/firewall/services.blade.php --}} @extends('layouts.app') @section('content') @php $tcpRules = $services->filter(fn($s) => str_contains(strtolower($s->protocol), 'tcp') && (int)$s->enabled); $udpRules = $services->filter(fn($s) => str_contains(strtolower($s->protocol), 'udp') && (int)$s->enabled); $totalTcp = $services->filter(fn($s) => str_contains(strtolower($s->protocol), 'tcp'))->count(); $totalUdp = $services->filter(fn($s) => str_contains(strtolower($s->protocol), 'udp'))->count(); @endphp {{-- Header --}}

Firewall Services

These are the allowed PBX service ports. Manage which ports are open and accessible.
@csrf
@csrf
@if(session('status'))
{{ session('status') }}
@endif @if($errors->any())
@foreach($errors->all() as $e)
{{ $e }}
@endforeach
@endif {{-- KPI Cards --}}
Total Rules
{{ $services->count() }}
All configured rules
TCP Rules
{{ $tcpRules->count() }} / {{ $totalTcp }}
Enabled TCP ports
UDP Rules
{{ $udpRules->count() }} / {{ $totalUdp }}
Enabled UDP ports
@php $latest = $services->sortByDesc('updated_at')->first(); @endphp
Last Updated
{{ $latest ? \Carbon\Carbon::parse($latest->updated_at)->diffForHumans() : 'Never' }}
● Firewall active
{{-- Service Rules Table --}}
Service Rules
@forelse($services as $service) @php $enabled = (int)$service->enabled === 1; $isPublic = !$service->ip_range || $service->ip_range === '0.0.0.0/0'; @endphp @empty @endforelse
Name Protocol Port / Range Exposure IP Range / Scope Status Updated Actions
{{ $service->name }}
ID: {{ $service->id }}
{{ strtoupper($service->protocol) }} {{ $service->port }} @if($isPublic) Public @else Restricted @endif {{ $service->ip_range ?: '0.0.0.0/0' }} {{ $enabled ? 'Enabled' : 'Disabled' }} @if(!empty($service->updated_at))
{{ \Carbon\Carbon::parse($service->updated_at)->diffForHumans() }}
{{ \Carbon\Carbon::parse($service->updated_at)->format('M d, Y H:i') }}
@else — @endif
@csrf @method('DELETE')
No service rules found. Click Load Default Rules to get started.
Showing {{ $services->count() }} of {{ $services->count() }} results
{{-- Add Service Modal --}} @push('custom-scripts') @endpush @endsection