@php($timezone=$scopeTenant?->timezone ?? config('app.timezone')) @php($mode=$scopeTenant && $policy->session_limit===null ? 'inherit' : ($policy->session_limit===0 ? 'unlimited' : 'limited'))

Access controls

IP restrictions are optional. MFA remains optional for everyone.

@csrf
Your current IP

{{ request()->ip() }}

Use your office's public IP. If it changes regularly, keep restrictions disabled. Trusted proxy configuration affects the detected IP.
@unless($policy->ip_enabled)@endunless @if($manageLimits) @else
Active session limit: {{ $limit ?: 'Unlimited' }}

Per account. A new login signs out the oldest session when full. Ask Super Admin to change your company's limit.

@endif

A session is a browser profile or installed app login, not a physical computer. Tabs normally share one session. Existing sessions are registered as they next access the app. Changed limits are enforced on the next authenticated request.

Recovery

Create and save recovery codes before enabling IP restrictions. A recovery code plus your administrator password can disable the IP restriction. It does not sign you in or bypass MFA.

{{ count($policy->recovery_hashes ?? []) }} unused recovery codes available. Creating new codes replaces all previous codes.

@csrf

Open access recovery · Super Admin can also disable a company's restriction. Hosting administrators can use the documented terminal recovery command.

Login sessions

Active means the session has not expired or been signed out. It does not prove someone is using the screen right now. Browser and system details are reported by the device.

Clear
@forelse($sessions as $login) @php($active=!$login->revoked_at && $login->expires_at->isFuture() && $login->user && !$login->user->disabled_at && $login->security_version===(int)$login->user->security_version) @empty@endforelse
AccountBrowser / systemIP addressSigned in / last seen ({{ $timezone }})StatusActions
{{ $login->user?->name ?? 'Removed account' }}
{{ $login->user?->email }}
{{ $login->browser }} · {{ $login->system }}
{{ $login->device }}
{{ $login->ip }}{{ $login->started_at->timezone($timezone)->format('d M Y H:i') }}
Last seen {{ $login->last_seen_at->timezone($timezone)->format('d M Y H:i') }}
{{ $active?'Active':'Ended' }}@if($login->id===$currentId)
This session@endif @if($login->end_reason)
{{ \Illuminate\Support\Str::headline($login->end_reason) }}@endif
@if($active)
@csrf
@elseNo action needed@endif
No sessions match your filters.
{{ $sessions->links() }}