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 options —
hexa()->setOption($key, null)now removes the option as expected, andhexa()->dateOption($key)resolves correctly. Both now use the samehexa-key prefix asgetOption()/setOption().
V2.0.0
Major Updates
Multi-Panel Support
Added support for multiple Filament panels using configurableauthGuard.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 insidePages,Resources,Widgets, andClustersvia thedefineGates()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
$hexaSortproperty. - Multi-tenancy support via
team_idrelation in theHexaRolemodel.
Changed
- Installation is now handled manually via plugin registration (no longer uses
hexa:installcommand). - Removed the need for
hexa:account— users without a role are now automatically treated as Superusers.
Removed
- Deprecated artisan commands:
php artisan hexa:installphp 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 allin 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.
hexa()->getOptionDate('term-condition-page-content') // output : 2030-04-06 10:10:10This helper returns a null value if the data is not found.
v1.2
1.1.1
- Add hexa-core config file
- update option
- update icon options
- Add global search
- Fix reseting password
- Update readme
- Remove permission name
- Update reamde
- Fix instaling issue
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:
- Add the plugin repository to your
composer.json. - Install the package using Composer:
composer require hexters/hexa - 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.