webrek / laravel-mongo-permission-filament
Filament v3 panel resources for webrek/laravel-mongo-permission
Package info
github.com/webrek/laravel-mongo-permission-filament
pkg:composer/webrek/laravel-mongo-permission-filament
Requires
- php: ^8.2
- filament/filament: ^3.0
- webrek/laravel-mongo-permission: ^1.5
Requires (Dev)
- orchestra/testbench: ^10.0
- phpstan/phpstan: ^2.0
- phpunit/phpunit: ^11.0
README
Filament v3 panel resources for
webrek/laravel-mongo-permission.
Status
v1.0.0. The plugin ships working Role and Permission resources for a Filament panel. Forms support name, guard, team scope, attached permissions, and (for roles) parent-role inheritance. Tables surface row counts and badge wildcard permissions.
Not included yet:
- A relation manager on the User resource (assign roles/permissions to a user from the user edit page).
- A team-aware scope filter on the panel.
- Bulk wildcard warnings on permission creation.
Contributions welcome — see "Roadmap" below.
Requirements
| Dependency | Version |
|---|---|
| PHP | 8.2+ |
| Laravel | 12.x |
| Filament | 3.x |
webrek/laravel-mongo-permission |
^1.5 |
Install
composer require webrek/laravel-mongo-permission-filament
Register the plugin on your Filament panel:
use Webrek\MongoPermissionFilament\MongoPermissionPlugin; public function panel(Panel $panel): Panel { return $panel ->plugins([ MongoPermissionPlugin::make(), ]); }
The plugin adds two resources under an "Access control" navigation group: Roles and Permissions.
What the resources do
Roles
- Create / edit a role with name, guard, optional
team_id. - Attach permissions via a multi-select pulling from the Mongo permissions collection.
- Inheritance: pick parent roles via a multi-select; the underlying package walks the chain at lookup time.
- List: searchable by name, sortable by guard. Permission and parent counts are shown inline.
Permissions
- Create / edit with name, guard, optional
team_id. - Names containing
*are visually badged so operators notice wildcard creation. - List: searchable, sortable, filterable by guard.
Roadmap
The plugin is intentionally minimal. Future work:
- User relation manager — a relation manager you can plug into
your own
UserResourceso admins can attach / detach roles and permissions on a user without leaving the user record. Will honor team context and surface expiry on each grant. - Team filter — a panel-level filter that scopes all resource
queries to the current team, integrating with the package's
setPermissionsTeamIdandteam-contextmiddleware. - TTL grant UI — assign-until widget in the relation manager for expiring grants.
- Bulk-import — UI wrapper around
permission:migrate-from-spatie. - Fuller panel tests — table and edit-page render coverage (record creation and plugin registration are already tested).
Open an issue or PR with proposals.
License
MIT