Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Filament User Laravel Package

kgalanos/filament-user

Filament User is a Laravel package for adding user management to Filament admin panels. It provides ready-made resources and profile tools for creating, editing, and managing user accounts, helping developers ship common admin user workflows with less boilerplate.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit The 2.0.0 manifest reveals the package's true shape: it is a Filament v3 admin-panel composition layer, not a standalone library. The four declared dependencies map to four distinct concerns — spatie/laravel-permission (authorization core), bezhansalleh/filament-shield (policy/permission generation over Filament resources), stechstudio/filament-impersonate (support/QA access), and alperenersoy/filament-export (data egress). That is a coherent, opinionated bundle for teams standardizing an internal back-office on Filament. It fits well if the organization has already committed to Laravel 10/11 + Filament 3 and wants role-based admin out of the box. It fits poorly if the product surface is customer-facing, if a different admin stack (Nova, Backpack, custom Blade) is entrenched, or if authorization is expected to live in a separate service.

Integration feasibility Feasible but not frictionless. Three issues stand out in the manifest itself:

  • filament-impersonate is pinned to ^3.0, which transitively anchors the host application to Filament 3. Any team mid-migration to Filament 4 is blocked until this package's own constraint lifts — the package does not own that upgrade timeline.
  • spatie/laravel-permission: ^5.8 is a major-version floor that excludes v6. This is the highest-probability conflict. Any other package in the estate requiring ^6.0 produces an unresolvable dependency graph, and the fix is a fork or a replace block — not a config change.
  • Two dependencies are declared as "*" (filament-export, filament-shield). Wildcards mean the package's behaviour is non-deterministic across composer update runs and that a maintainer's breaking release ships to production without a version boundary. Shield in particular generates policies and permissions, so a silent major bump can alter authorization semantics.

Technical risk Moderate-to-high, concentrated in three areas rather than spread evenly. First, supply chain and pinning — two wildcard constraints plus four maintainers is a wide surface for an admin panel that sits in front of privileged operations. Second, security posture of impersonation — this is a deliberately privileged capability and its blast radius is entirely determined by how the host app gates and logs it; the package cannot enforce that. Third, authorization drift — Shield derives permissions from policies at generation time, so permissions can silently desynchronize from the codebase as resources are added or renamed. The dependency list also carries an implicit constraint (Filament 3) that is nowhere stated in the release notes.

Key questions

  1. What Laravel, PHP, and Filament versions does 2.0.0 actually support, and is Filament 4 on the roadmap?
  2. Why are two dependencies wildcarded, and will the maintainer commit to caret ranges?
  3. Is the laravel-permission ^5.8 floor a hard requirement or an untested default? Can it be widened to ^5.8|^6.0?
  4. The published "release notes" are a Composer require block, not a changelog. Is there a documented 1.x → 2.0 breaking-change list, and was 1.x previously published?
  5. Does the package ship its own migrations for the permission tables, or does it expect the host to publish and own them?
  6. How are impersonation sessions separated, and does the package emit any audit hook?

Integration Approach

Stack fit The bundle assumes a conventional Laravel monolith with a Filament panel provider and a relational database holding Spatie's roles/permissions tables. It is a strong fit for internal tooling — ops consoles, support desks, back-office CRUD — where an admin panel is a cost center rather than a product. It is a weak fit for anything requiring fine-grained, resource-level authorization beyond what Filament policies express, or for multi-tenant setups where tenancy is not already handled at the panel level.

Migration path Greenfield adoption is straightforward; brownfield is where sequencing matters. For teams coming from a custom admin or from Nova, the real work is not installing four plugins — it is reconciling two authorization models. Existing role names, permission strings, and gate definitions must be mapped onto Spatie's namespace before Shield generates its own, or the estate ends up with a duplicate permission vocabulary that is expensive to unwind. Treat the data migration of roles/permissions as a named workstream with its own review, not as a seeding step.

Compatibility Two hard gates: the Filament major version (3, transitively enforced) and the laravel-permission major (5, explicitly enforced). Both should be verified against the existing composer.lock before commitment, not after. A 30-minute composer why-not spike against the real application's lockfile will retire most of the integration uncertainty here and should precede any estimation.

Sequencing Install in dependency order so failures surface early and cheaply:

  1. spatie/laravel-permission — publish config and migrations, backfill role/permission data, verify cache behaviour in staging.
  2. bezhansalleh/filament-shield — pin the wildcard to the resolved version, generate policies, diff the generated set against the intended model.
  3. stechstudio/filament-impersonate — land last among the privileged features, behind an explicit gate and with audit logging wired up in the same PR.
  4. alperenersoy/filament-export — lowest risk, highest user-visible value; ship once authorization is stable so exports inherit correct scoping.

Ship steps 1–2 behind a feature flag in a non-production environment first; the permission layer is the item most likely to require rework.

Operational Impact

Maintenance Four third-party dependencies, four maintainer relationships, and two unpinned constraints. The steady-state cost is not large, but it is concentrated and periodic: an upstream Filament major release will require coordinated movement across all four, and this package will be the bottleneck because it does not control filament-impersonate's release cadence. Budget a recurring dependency-review line item rather than treating this as a one-time install.

Support Support burden splits cleanly. Tier-1 questions (export fails, permissions look wrong) are resolvable by the adopting team. Tier-2 questions (Shield generated the wrong policy, impersonation is over-permissioned) require someone who understands both the package and the host app's policy graph — a single named owner is strongly advised. Upstream support is community-only across all four maintainers; there is no vendor SLA, which should be stated explicitly in any internal risk register.

Scaling Two scaling cliffs worth flagging in advance. Export is the obvious one: naive synchronous exports over large tables will exhaust memory and tie up PHP workers — anything beyond modest row counts needs queueing and streaming, and that is host-app engineering work the package will not do for you. Permission resolution is the subtler one: Spatie caches permissions, so cache invalidation must be part of the deploy pipeline, or post-deploy permission changes silently fail to apply until the TTL expires. Horizontal scaling is otherwise unremarkable.

Failure modes

  • Wildcard drift — composer update pulls an incompatible Shield or export release; production breaks with no version change on the package itself.
  • Permission cache staleness — the single most common production symptom; manifests as "I gave them access and nothing happened."
  • Policy/permission desync — a new Filament resource ships without regenerating Shield output, leaving an unreachable or, worse, under-gated screen.
  • Impersonation left enabled — reachable in production without an explicit gate; the highest-severity failure on this list and the cheapest to prevent.
  • Dependency conflict on upgrade — the ^5.8 permission floor blocks adoption of a v6-requiring package elsewhere, forcing a fork mid-sprint.

Ramp-up Assume one to two sprints for a mid-level Laravel engineer to become productive, with most of that spent on Filament's resource/policy conventions rather than on this package. The genuinely scarce skill is the authorization model — mapping roles and permissions correctly is a design exercise, and getting it wrong is expensive to reverse once Shield has generated a policy set. Recommend one engineer own authorization end-to-end through the first release, and require an explicit review of the generated permission list before it reaches production.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus
adachsoft/php-code-style