Repository navigation
Releases: FGcodework/plg_system_fgofflineipwhitelist
Releases · FGcodework/plg_system_fgofflineipwhitelist
Release list
v1.1.6
v1.1.5
v1.1.4
v1.1.3
Changed
- Added
declare(strict_types=1);to all four PHP files (Extension\Fgofflineipwhitelist,Support\IpResolver,fields/fgclientip.php,services/provider.php), the current standard for Joomla 5/6 development. All existing type conversions in the codebase
already used explicit casts, so this catches accidental implicit coercions going forward without changing current behaviour - verified withphp -lon all four files and a functional re-run of the IPv4-mapped-IPv6 test suite against the actual (now strict)IpResolver.php.
v1.1.2
Changed
onAfterInitialise()now type-hints its parameter againstJoomla\Event\EventInterfaceinstead of the concreteJoomla\Event\Eventclass, for better compatibility with Joomla's DI container and event system (the parameter itself isn't used in the method body, so this is a pure type-safety/API-cleanliness change with no behavioural effect).
v1.1.1
Fixed
onAfterInitialiseis now registered withJoomla\Event\Priority::HIGHinstead of the default priority, so it runs before other listeners on the same event - notably the System - Cache plugin, which could otherwise serve a cached "Offline" page response before this plugin had a chance to clear the offline flag for a whitelisted visitor. (Note: in Joomla's event system a higher priority value runs earlier - the opposite convention from some other plugin systems.)
v1.1.0
Added
- Declared
<php_minimum>8.0.0</php_minimum>in the manifest. The code relies onmatchexpressions andstr_contains()(both PHP 8.0+), so Joomla's installer now blocks/warns on installation to an incompatible PHP version up front, instead of failing with a fatal error the first time the plugin runs.
v1.0.10
Fixed
- IPv4-mapped IPv6 addresses (
::ffff:192.0.2.1, common for dual-stack visitors or IPv4-only backends seen through an IPv6-capable proxy) did not match the same address written as plain IPv4, for both exact entries and CIDR ranges. Both sides are now normalized to plain IPv4 independently before comparing; when a CIDR entry itself was written in mapped form, its mask is rescaled from the 128-bit to the 32-bit equivalent accordingly. Plain IPv4-vs-IPv4 and plain IPv6-vs-IPv6 matching is unaffected.
v1.0.9
Fixed
- The "Your detected IP" field added in 1.0.8 rendered as an empty, editable text box instead of the read-only info panel. Root cause: the manifest declared the custom field via
type="\Fully\Qualified\Class", a syntax not reliably supported on extension config screens across Joomla 4/5/6 - the field type failed to resolve and Joomla silently fell back to a plain text input. Replaced with the classicaddfieldpath+ globalJFormField<Type>class convention (field now lives infields/fgclientip.phpinstead ofsrc/Field/), which is the well-established, reliably-supported mechanism for this. Behaviour and output are otherwise unchanged.
v1.0.8
Added
- New "Your detected IP" read-only info box at the top of the plugin's settings, showing the IP currently detected for the admin's own request - resolved with the exact same shared logic (
Support\IpResolver) the plugin uses at runtime, including any unsaved Trust X-Forwarded-For / Trusted proxy IPs / Client IP header values on the form. Makes it easy to find the right value to add to Allowed IP addresses without leaving the settings screen.
Changed
- Refactored IP/CIDR matching and client-IP header resolution out of the plugin class into a shared
Support\IpResolverhelper, used by both the runtime plugin and the new preview field, so the preview can never diverge from actual enforcement.