Skip to content

Releases: FGcodework/plg_system_fgofflineipwhitelist

v1.1.6

Choose a tag to compare

@FGcodework FGcodework released this 01 Oct 06:31

minor fixes

v1.1.5

Choose a tag to compare

@FGcodework FGcodework released this 28 Sep 09:44

minor fixes

v1.1.4

Choose a tag to compare

@FGcodework FGcodework released this 25 Sep 06:11

minor fixes

v1.1.3

Choose a tag to compare

@FGcodework FGcodework released this 10 Aug 19:18

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 with php -l on 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

Choose a tag to compare

@FGcodework FGcodework released this 10 Aug 19:04

Changed

  • onAfterInitialise() now type-hints its parameter against Joomla\Event\EventInterface instead of the concrete Joomla\Event\Event class, 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

Choose a tag to compare

@FGcodework FGcodework released this 10 Aug 19:01

Fixed

  • onAfterInitialise is now registered with Joomla\Event\Priority::HIGH instead 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

Choose a tag to compare

@FGcodework FGcodework released this 10 Aug 18:54

Added

  • Declared <php_minimum>8.0.0</php_minimum> in the manifest. The code relies on match expressions and str_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

Choose a tag to compare

@FGcodework FGcodework released this 10 Aug 18:48

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

Choose a tag to compare

@FGcodework FGcodework released this 10 Aug 18:42

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 classic addfieldpath + global JFormField<Type> class convention (field now lives in fields/fgclientip.php instead of src/Field/), which is the well-established, reliably-supported mechanism for this. Behaviour and output are otherwise unchanged.

v1.0.8

Choose a tag to compare

@FGcodework FGcodework released this 10 Aug 18:32

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\IpResolver helper, used by both the runtime plugin and the new preview field, so the preview can never diverge from actual enforcement.