Monitoring {{-- STATUS --}} @if($status === 'disabled')
IP checking is switched off in configuration

IP_ALLOWLIST_ENFORCED=false is set in the environment, so nothing below is being enforced. Remove it (or set it to true) to turn the allowlist back on.

@elseif($status === 'dormant')
Not enforcing yet — the list is empty

Anyone can sign in from anywhere. Enforcement starts the moment the first address is added, so add the office range (and your own address) before you rely on it.

@else
Enforcing

Sign-ins are only accepted from the addresses below, and any session that moves to an address that is not listed is ended straight away.

@endif @if($forwarded)
Your address is coming from a forwarded header

The allowlist is judging you as {{ $myIp }}, but the connection itself is from {{ $remoteAddr }} — the difference comes from an X-Forwarded-For header.

That is exactly right behind a load balancer, provided trustProxies() names your real proxies. If it trusts everything, a caller can forge that header and walk past this list. Where the application is reached directly, set IP_ALLOWLIST_SOURCE=remote_addr to check the connecting address instead.

@endif @if(session('status'))
{{ session('status') }}
@endif @error('lockout')
Change not saved

{{ $message }}

@enderror
{{-- ADD --}}
Add an address
You are connecting from
{{ $myIp }}
@if($myIpRule) Covered by "{{ $myIpRule->label }}" @else Not on the list @endif
@error('label')
{{ $message }}
@enderror
@error('value')
{{ $message }}
@enderror
A single address, or a whole range written in CIDR form. IPv6 is accepted too.
{{-- LIST --}}
Approved addresses {{ $entries->count() }} {{ Str::plural('entry', $entries->count()) }}
@if($entries->isEmpty())

No addresses approved yet.

@else
@foreach($entries as $entry) @endforeach
Label Address Last seen Added by Actions
{{ $entry->label }} @if($entry->covers($myIp) && $entry->is_active) You @endif @unless($entry->is_active) Disabled @endunless {{ $entry->value }} @if($entry->isRange())
Range
@endif
{{ $entry->last_seen_at?->diffForHumans() ?? 'Never' }} {{ $entry->creator?->name_first }} {{ $entry->creator?->name_last }}
{{ $entry->created_at->format('d/m/Y') }}
@endif