@extends('admin.firewallplus.layout', ['fwpTab' => 'license']) @section('fwp_title') Firewall-Plus: License @endsection @section('fwp_subtitle') Activation & validation for this panel @endsection @section('fwp') @php /** @var \Pterodactyl\Services\FirewallPlus\Integrity\IntegrityState $state */ $healthy = $state->isHealthy(); $configured = $state->configured; $statusLabel = $configured ? ($healthy ? 'Active' : 'Invalid') : 'Not activated'; $boxClass = $configured ? ($healthy ? 'box-success' : 'box-danger') : 'box-warning'; $dotColor = $configured ? ($healthy ? '#27c281' : '#e74c3c') : '#e6a100'; $fwpVersion = '1.1.0'; $fmt = function (?string $iso) { if (!$iso) return '-'; try { return \Carbon\Carbon::parse($iso)->toDayDateTimeString(); } catch (\Throwable $e) { return $iso; } }; // SVG icons (inline, sized to fit the UI) $iconLogo = ''; $iconActive = ''; $iconInactive = ''; @endphp @if (session('success'))
{!! $iconActive !!} {{ session('success') }}
@endif @if ($errors->any())
{!! $iconInactive !!} License problem:
@endif @if (session('fwp_license_error'))
{!! $iconInactive !!} {{ session('fwp_license_error') }}
@endif @unless ($healthy)

{!! $iconInactive !!} License not activated

Firewall-Plus is locked. Every admin section other than this page is disabled until a valid license is activated. Enter your license key below, or contact support.

@endunless
{{-- ── Status widget ───────────────────────────────────────────── --}}

{!! $iconLogo !!} License Status

@if (!$healthy && $state->lastFailureAt) @endif
Status @if ($healthy) {!! $iconActive !!}{{ $statusLabel }} @elseif ($configured) {!! $iconInactive !!}{{ $statusLabel }} @else {!! $iconInactive !!}{{ $statusLabel }} @endif
License Key {{ $state->maskedKey ?? '-' }}
Last Validation {{ $fmt($state->lastValidatedAt) }}
Panel Domain {{ $diagnostics['domain'] ?? '-' }}
Addon Version {{ $fwpVersion }}
Last Failure {{ $fmt($state->lastFailureAt) }}
@if ($guidance)

@if ($state->errorCode === 'machine_mismatch') {!! $iconInactive !!} HWID mismatch detected @elseif ($state->errorCode === 'domain_mismatch') {!! $iconInactive !!} Possible license leak detected @else {!! $iconInactive !!} Validation problem @endif

{{ $guidance }}

@endif {{-- Contact / support info --}}

{!! $iconLogo !!} Firewall-Plus by pingless.org

Discord: pingless  ·  BuiltByBit: PingLess

{{-- ── Actions ─────────────────────────────────────────────────── --}}

{!! $iconLogo !!} Manage License

{{-- Verify / activate --}}
@csrf

The panel domain and machine fingerprint are detected automatically and bound on first activation. Do not share your license key — admins of this addon track every server where it runs. They can file a complaint against the server or network provider, or instantly suspend the license, making both the license leaker's and the person who used the leaked license's addon completely unusable.

Reset releases this key from the current domain and machine fingerprint so you can move it to another installation. After a reset you must re-activate before rules apply again.

{{-- Three equal-width buttons in one row --}}
@unless ($healthy)

While the license is not active, Firewall-Plus rule enforcement is paused and rules are flushed from your nodes. Existing rules stay saved and re-apply automatically once the license validates.

@endunless
@endsection @section('footer-scripts') @parent @endsection