widiu7omo/filament-bandel
Filament Bandel is a Laravel package that integrates Bandel functionality into Filament admin panels. It provides a simple, configurable way to manage Bandel records and workflows alongside your existing Filament resources, with native UI and easy installation.
expired_at validation preventing accidental permanent/backdated bans. It does not cover appeals, audit history, notifications, or IP/device bans. Use it as the admin control surface on top of an existing ban model, and budget separately for any moderation workflow beyond that.Adopt when all of the following hold:
laravel-ban-style trait with a banned_at column and observers — the package's semantics (and its bulk-freshness fix) assume that model.Look elsewhere or stay put when:
final and make() no longer accepts a custom name — custom naming or behaviour must be expressed by chaining after make(). Any existing fork or subclass is now a migration item, not a drop-in.banned_at assumption is load-bearing here.Adoption guidance: pin the version, run the upgrade on a branch, and exercise bulk ban/unban against real data — the freshness and transaction changes are the behaviours most worth confirming in staging.
To executives: This is a small, low-cost dependency that adds ban/unban controls to our admin panel and, more importantly, keeps working across the next two Filament versions without us maintaining it ourselves. The v3 release also fixes a correctness bug where bulk bans could skip or double-apply. Cost is one dependency; the benefit is removing a known blocker from our admin-panel upgrade path.
To engineering: v3.0.0 is a maintenance and correctness release with breaking changes. It targets Filament 3/4/5 from one branch by resolving action namespaces at runtime, so we stop carrying per-major forks. It requires PHP 8.2+ and Laravel 11.8+, and drops Laravel 10 — confirm our floor before bumping. Action classes are final and make() no longer takes a name, so any subclassing or custom naming becomes chaining after make(). Bulk operations now re-read records from the database and run in a transaction, which addresses the stale-model bug caused by ban observers writing banned_at to separate instances. Test coverage was rebuilt on Pest with testbench and a CI matrix across Filament 3/4/5 × Laravel 11/12/13, which materially raises confidence versus v2.
How can I help you explore Laravel packages today?