Skip to content

Changelog

CHANGELOG

V3.0.3

Added

  • Filament v5 support — Hexa v3 now officially supports both Filament v4 and v5.
  • Automated test suite (Pest + Orchestra Testbench) covering the permission engine, gate registration, multi-panel guard scoping, and the meta option store.

Fixed

  • Superuser check via hexa()->user($user) — a user without any role is now correctly treated as a Superuser in non-authenticated contexts (queues, jobs, commands). Previously an empty role collection was mistaken for an assigned role set, wrongly denying access.
  • Meta optionshexa()->setOption($key, null) now removes the option as expected, and hexa()->dateOption($key) resolves correctly. Both now use the same hexa- key prefix as getOption()/setOption().

V2.0.0

Major Updates

  • Multi-Panel Support
    Added support for multiple Filament panels using configurable authGuard.

  • Non-Authenticated Context Access Checks
    Now supports permission checking outside the authenticated context (e.g., in queues, jobs, commands).

  • Simplified Permission Definitions
    Permissions can now be defined directly inside Pages, Resources, Widgets, and Clusters via the defineGates() method.

  • Navigation Customization
    Added options to customize navigation name, group, and icon through the plugin configuration.

  • Descriptive Permissions
    Roles and permissions now support descriptions for better internal documentation and UI context.

New Features

  • New traits introduced:
    • HasHexaRole (for Resources, Pages, Widgets, etc.)
    • UuidGenerator & UlidGenerator (for models with UUID/ULID fields)
  • New API methods:
    • hexa()->setOption()
    • hexa()->getOption()
    • hexa()->dateOption()
    • hexa()->getOptionKeys()
  • Support for defining custom gates using GateItem, with nested permission groups.
  • Role sorting using a custom $hexaSort property.
  • Multi-tenancy support via team_id relation in the HexaRole model.

Changed

  • Installation is now handled manually via plugin registration (no longer uses hexa:install command).
  • Removed the need for hexa:account — users without a role are now automatically treated as Superusers.

Removed

  • Deprecated artisan commands:
    • php artisan hexa:install
    • php artisan hexa:account

Fixed

  • Improved gate resolution and permission logic for multi-panel and non-authenticated contexts.

See earlier changelogs for version 1.x

V1.3.2

  • Add select all / deselect all in permission module.

V1.3

Date : 07-07-2024

Added helper of retrieving update date option

For example, I want to retrieve the date of the last update of a term & condition that was previously set.

php
hexa()->getOptionDate('term-condition-page-content') // output : 2030-04-06 10:10:10

This helper returns a null value if the data is not found.

v1.2

1.1.1

V1.1

Fix bug & New Features

V1.0

Filament Hexa v1.0 Release

What's New

  • Plugin Features: Introduces Hexa, a robust role & permission management plugin for Filament, adapted from hexters/ladmin concept.
  • Installation: Streamlined installation process via Composer integration and CLI commands.
  • Permission Management: Effortlessly manage permissions inline with components such as Pages, Resources, and Widgets.
  • Comprehensive Documentation: Detailed guides available at Hexa Docs covering setup, configuration, and integration with your Filament project.

How to Install

To install Filament Hexa v1.0, follow these steps:

  1. Add the plugin repository to your composer.json.
  2. Install the package using Composer:
    composer require hexters/hexa
  3. Initialize and configure Hexa with artisan commands:
    php artisan hexa:install
    php artisan hexa:account

Getting Started

For comprehensive instructions on setting up panels, configuring access permissions, and integrating Hexa into your Filament project, visit the Hexa Documentation.

Issues

Found a bug or want to suggest a feature? Please create an issue on GitHub.

Released under the MIT License.