panservicesas/filament-users
A Filament plugin for managing users in Laravel apps: browse, create, edit, and organize user accounts with role and permission support, profile fields, and ready-made admin resources for faster backend setup.
Architecture fit. panservicesas/filament-users is a Filament panel plugin that ships a pre-built UserResource — list/create/edit views over the application's authenticatable model, plus an impersonation action. Architecturally it is a presentation-layer package, not a domain package: it assumes the host app already owns the User model, auth guards, and role/permission wiring. That is a good fit if the admin surface is already Filament and the team wants CRUD-with-impersonation in days rather than weeks. It is a poor fit if the user domain is non-trivial (multi-tenant scoping, soft-deleted users, external IdP) because the resource's assumptions will need to be overridden — at which point you are maintaining a fork of a resource class you could have written yourself.
Integration feasibility. Low effort. Composer install, register the plugin on a panel, publish config/assets if needed, ensure the panel's auth guard points at the same provider the resource queries. The real work is not installation but policy: deciding who may impersonate whom, and whether the app's authorization layer (Gates/Policies) is actually consulted by the resource or bypassed.
Technical risk. Moderate, concentrated in three areas:
email now copyable, record URL disabled) with no config flag mentioned.Key questions for the maintainer/team.
UserResource be swapped for a subclass, or is it resolved by convention?Stack fit. Appropriate for a Laravel + Filament admin panel using standard Eloquent session auth. Confirm prerequisites before committing: Filament major version match, PHP version, and that the User model implements Filament's FilamentUser contract. If auth is delegated to an external IdP (SSO/OIDC) and the local User table is a projection, the resource's create/edit flows may write to a table the IdP considers read-only — evaluate before installing.
Migration path. Greenfield admin panels: install directly. Existing panels with a hand-rolled user resource: do not delete-and-replace in one step. Install alongside, gate the plugin resource behind a feature flag or separate panel path, run both for a sprint, then deprecate the bespoke one. This de-risks the impersonation changeover in particular, since operators have muscle memory around the old flow.
Compatibility. Pin the package with a caret constraint and commit the lockfile; treat Filament upgrades as a coordinated change. Verify the impersonation confirmation behaviour against any custom action overrides or resource extensions you have already applied — v2.5.2 touches UserResource internals, so subclasses overriding table() or the impersonate action should be re-tested.
Sequencing.
Maintenance. Low day-to-day burden: a small, actively released package (v2.5.2 follows v2.5.1 closely). The maintenance cost is not patching, it is upgrade coupling — budget a recurring task each time Filament ships a major. Because the release is a patch bump with UX changes only, no migration work is implied here.
Support. Two audiences. End users (admins) will notice the v2.5.2 changes immediately: copying an email is a small but real reduction in support friction, and disabling the record URL removes a dead-end navigation target — both are quality-of-life wins that reduce "how do I…" tickets. Developers need a documented owner for the resource overrides; without one, overrides rot silently across releases.
Scaling. The resource is a standard Eloquent-backed table. Scaling risk is the users table itself, not the package: add indexes on the columns used for search/sort, and enable Filament's pagination defaults. Impersonation does not scale badly, but concurrent impersonation sessions can, if your session store is shared and operators collide on the same target user — worth a policy note rather than a code change.
Failure modes.
name/email columns and a simple guard; a renamed or composite-key user table fails at query time.Ramp-up. Half a day for a Laravel-fluent developer to install and configure; one to two days to add policy enforcement, audit logging, and overrides responsibly. Non-technical stakeholders need no ramp-up — the UI is conventional — but admins should be briefed on the new impersonation confirmation so it is not mistaken for a bug when the extra click appears.
How can I help you explore Laravel packages today?