PackageTrack
Sign in Get early access

stechstudio/filament-impersonate

A Filament package to impersonate your users.

v5.6.0 4.1M downloads/mo #1273 most downloaded on Packagist stechstudio/filament-impersonate

What this package is like to depend on

Last release 1 months ago

06 Jul 2026

Release timing varies

gaps range from 2 weeks to 5 months

Rarely documented

notes for 7 of 60 stable releases

Nothing withdrawn

no release was ever pulled

5 years old

63 releases · first in 2021

16 releases in the last 12 months

see the full history below

Release timeline

62 releases · Mar 2021 to Jul 2026
2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 60 of 63
  1. v5.6.0 06 Jul 2026
    Release notes

    What's Changed

    New Contributors

    Full Changelog: v5.5.0...v5.6.0

    Open source →
  2. v5.5.0 26 May 2026
    Release notes

    What's Changed

    • Scope Login/Logout impersonation clear to the impersonator's guard by @chengkangzai in #154

    Full Changelog: v5.4.0...v5.5.0

    Open source →
  3. v5.4.0 11 May 2026
    Release notes

    What's Changed

    New Contributors

    Full Changelog: v5.3.0...v5.4.0

    Open source →
  4. v5.3.0 14 Apr 2026
    Release notes

    What's Changed

    • Allow user to specify spa mode on redirect regardless of Filament configuration by @machacekmartin in #148

    New Contributors

    Full Changelog: v5.2.0...v5.3.0

    Open source →
  5. v5.2.0 08 Apr 2026
    Release notes

    What's Changed

    New Contributors

    Full Changelog: v5.1.0...v5.2.0

    Open source →
  6. v5.1.0 22 Feb 2026
    Release notes

    What's Changed

    New Contributors

    Full Changelog: v5.0.0...v5.1.0

    Open source →
  7. v5.0.0 13 Feb 2026
    Release notes

    What's New

    This is a major release that removes the lab404/laravel-impersonate dependency entirely, replacing it with a lean, native implementation purpose-built for Filament — with full Octane compatibility.

    Native impersonation engine

    All impersonation logic is now handled internally by ImpersonateManager — a stateless, Octane-safe service registered as a scoped binding. No more pulling in a general-purpose impersonation package.

    Octane support

    Impersonation works correctly under Laravel Octane (Swoole and FrankenPHP). The package uses direct session manipulation with Laravel's stock SessionGuard, avoiding any custom guard registration that could break under Octane's request sandboxing.

    Impersonation facade

    A new Impersonation facade provides a clean static API:

    use STS\FilamentImpersonate\Facades\Impersonation;
    
    Impersonation::isImpersonating();
    Impersonation::getImpersonator();
    Impersonation::getImpersonatorId();
    Impersonation::enter($from, $to, $guardName);
    Impersonation::leave();

    Events

    New package-owned events replace the lab404 events:

    • STS\FilamentImpersonate\Events\EnterImpersonation
    • STS\FilamentImpersonate\Events\LeaveImpersonation

    Both carry $impersonator and $impersonated public properties.

    Failure feedback

    When impersonation fails (e.g. incompatible guard), a Filament danger notification is now shown instead of silently doing nothing. Diagnostic Log::warning() messages are also emitted for debugging.


    Upgrading from v4

    Removed: lab404/laravel-impersonate dependency

    The package no longer requires or uses lab404/laravel-impersonate. It will be removed from your composer.lock automatically on update.

    Removed: Impersonate trait (STS\FilamentImpersonate\Models\Impersonate)

    The trait that was added to User models has been removed. If your User model uses this trait, remove it:

    - use STS\FilamentImpersonate\Models\Impersonate;
    -
      class User extends Authenticatable
      {
    -     use Impersonate;
      }

    If you had canImpersonate() or canBeImpersonated() methods on your model via the trait, just keep them as regular methods — the action checks for them with method_exists().

    Removed: guard config key

    The filament-impersonate.guard config option has been removed. The guard is now determined by the Filament panel's auth guard. For per-action override, use ->guard('custom') on the action.

    If you published the config file, you can remove the guard key.

    Changed: Event classes

    If you listen for impersonation events, update your imports:

    - use Lab404\Impersonate\Events\TakeImpersonation;
    - use Lab404\Impersonate\Events\LeaveImpersonation;
    + use STS\FilamentImpersonate\Events\EnterImpersonation;
    + use STS\FilamentImpersonate\Events\LeaveImpersonation;

    Changed: ImpersonateManager namespace

    If you referenced the manager directly (most users won't have), the namespace changed:

    - use Lab404\Impersonate\Services\ImpersonateManager;
    + use STS\FilamentImpersonate\ImpersonateManager;

    Prefer using the Impersonation facade instead.

    Changed: impersonateRecord() signature

    The unused second parameter $visible has been removed:

    - ->impersonateRecord($record, $visible)
    + ->impersonateRecord($record)

    Internal Improvements

    • 124 tests covering the manager, action, banner, route, facade, and configuration
    • Translations for all 16 supported languages
    • Updated README with current Filament v5 examples and fresh screenshots
    Open source →
  8. v5.0.0-beta.3 13 Feb 2026 pre-release
    Release notes

    Changes

    • Octane compatibility: Replaced custom SessionGuard with direct session manipulation. The custom guard registered via Auth::extend() was not surviving Octane's request sandboxing, causing impersonation to fail silently under Swoole/FrankenPHP. The package now manipulates auth session keys directly using Laravel's stock SessionGuard, removing the fragile class coupling.

    • Failure notification: When impersonation fails, a Filament danger notification is now shown instead of silently doing nothing.

    • Diagnostic logging: Log::warning() is now emitted when enter() or leave() fails, with guard and user context for debugging.

    • LeaveImpersonation event: The $impersonated parameter is now nullable to handle edge cases where the impersonated user was soft-deleted or removed during the session.

    Open source →
  9. v5.0.0-beta.2 12 Feb 2026 pre-release
    Release notes

    Bug Fix

    • Fixed table row action not triggering impersonation — The action callback in setUp() was missing the $record parameter, causing the impersonate button on table rows to silently fail. The visible() callback was correct, so the button appeared but clicking it did nothing. (#146)

    Full Changelog

    See v5.0.0-beta.1 for the complete list of changes in the v5 release.

    Open source →
  10. v5.0.0-beta.1 12 Feb 2026 pre-release
    Release notes

    What's New

    This is a major release that removes the lab404/laravel-impersonate dependency entirely, replacing it with a lean, native implementation purpose-built for Filament.

    Native impersonation engine

    All impersonation logic is now handled internally by ImpersonateManager — a stateless, Octane-safe service registered as a scoped binding. No more pulling in a general-purpose impersonation package.

    Impersonation facade

    A new Impersonation facade provides a clean static API:

    use STS\FilamentImpersonate\Facades\Impersonation;
    
    Impersonation::isImpersonating();
    Impersonation::getImpersonator();
    Impersonation::getImpersonatorId();
    Impersonation::enter($from, $to, $guardName);
    Impersonation::leave();

    Custom SessionGuard

    A custom SessionGuard with quietLogin() / quietLogout() methods handles user switching without firing Laravel's auth events, preserving session state during impersonation.

    Events

    New package-owned events replace the lab404 events:

    • STS\FilamentImpersonate\Events\EnterImpersonation
    • STS\FilamentImpersonate\Events\LeaveImpersonation

    Both carry $impersonator and $impersonated public properties.


    Breaking Changes

    Removed: lab404/laravel-impersonate dependency

    The package no longer requires or uses lab404/laravel-impersonate. It will be removed from your composer.lock automatically on update.

    Removed: Impersonate trait (STS\FilamentImpersonate\Models\Impersonate)

    The trait that was added to User models has been removed. The action uses method_exists() checks, so the trait was never required. If your User model uses this trait, remove it:

    - use STS\FilamentImpersonate\Models\Impersonate;
    -
      class User extends Authenticatable
      {
    -     use Impersonate;
      }

    If you had canImpersonate() or canBeImpersonated() methods on your model via the trait, just keep them as regular methods — the action checks for them with method_exists().

    Removed: guard config key

    The filament-impersonate.guard config option has been removed. The guard is now determined by the Filament panel's auth guard (which is the correct default). For per-action override, use ->guard('custom') on the action.

    If you published the config file, you can remove the guard key.

    Changed: Event classes

    If you listen for impersonation events, update your imports:

    - use Lab404\Impersonate\Events\TakeImpersonation;
    - use Lab404\Impersonate\Events\LeaveImpersonation;
    + use STS\FilamentImpersonate\Events\EnterImpersonation;
    + use STS\FilamentImpersonate\Events\LeaveImpersonation;

    Changed: ImpersonateManager namespace

    If you referenced the manager directly (most users won't have), the namespace changed:

    - use Lab404\Impersonate\Services\ImpersonateManager;
    + use STS\FilamentImpersonate\ImpersonateManager;

    Prefer using the Impersonation facade instead.

    Changed: impersonateRecord() signature

    The unused second parameter $visible has been removed:

    - ->impersonateRecord($record, $visible)
    + ->impersonateRecord($record)

    Changed: app('impersonate') / app(ImpersonateManager::class)

    These still work, but the recommended API is now the Impersonation facade.


    Internal Improvements

    • Error handling: enter() failure is now caught and handled before redirecting
    • Session cleanup: clear() now also removes stale remember-me cookie staging data
    • Auth hash clearing: Simplified with a collect pipeline instead of nested conditionals
    • Code organization: Dense canImpersonate() boolean chain decomposed into readable guard clauses
    • 125 tests covering the manager, action, banner, route, facade, and configuration
    Open source →
  11. 4.1.4 11 Feb 2026

    Nothing published for this version

  12. 4.1.3 20 Jan 2026

    Nothing published for this version

  13. 4.1.2 16 Jan 2026

    Nothing published for this version

  14. 4.1.1 16 Jan 2026

    Nothing published for this version

  15. 4.0.2 29 Dec 2025

    Nothing published for this version

  16. 4.0.1 13 Aug 2025

    Nothing published for this version

  17. 3.6.1 30 Jan 2024

    Nothing published for this version

  18. 2.5.1 01 May 2022

    Nothing published for this version

  19. 2.4.2 21 Jan 2022

    Nothing published for this version

  20. 2.4.1 10 Jan 2022

    Nothing published for this version

  21. 2.3.2 10 Jan 2022

    Nothing published for this version

  22. 2.3.1 04 Jan 2022

    Nothing published for this version

  23. 4.1 16 Jan 2026

    Nothing published for this version

  24. 4.0 12 Aug 2025

    Nothing published for this version

  25. 3.9 05 Jun 2024

    Nothing published for this version

  26. 3.8 25 Mar 2024

    Nothing published for this version

  27. 3.7 23 Feb 2024

    Nothing published for this version

  28. 3.6 29 Jan 2024

    Nothing published for this version

  29. 3.5 14 Aug 2023

    Nothing published for this version

  30. 3.4 10 Aug 2023

    Nothing published for this version

  31. 3.3 02 Aug 2023

    Nothing published for this version

  32. 3.2 01 Aug 2023

    Nothing published for this version

  33. 3.16 15 Apr 2025

    Nothing published for this version

  34. 3.15 03 Dec 2024

    Nothing published for this version

  35. 3.14 27 Aug 2024

    Nothing published for this version

  36. 3.13 23 Jul 2024

    Nothing published for this version

  37. 3.12 18 Jul 2024

    Nothing published for this version

  38. 3.11 11 Jul 2024

    Nothing published for this version

  39. 3.10 05 Jul 2024

    Nothing published for this version

  40. 3.1 31 Jul 2023

    Nothing published for this version

  41. 3.0 27 Jul 2023

    Nothing published for this version

  42. 2.9 07 Nov 2022

    Nothing published for this version

  43. 2.8 no date

    Nothing published for this version

  44. 2.7 07 Nov 2022

    Nothing published for this version

  45. 2.6 28 Sep 2022

    Nothing published for this version

  46. 2.5 29 Apr 2022

    Nothing published for this version

  47. 2.4 05 Jan 2022

    Nothing published for this version

  48. 2.3 03 Jan 2022

    Nothing published for this version

  49. 2.20 02 Aug 2023

    Nothing published for this version

  50. 2.2 03 Jan 2022

    Nothing published for this version

  51. 2.19 30 Jun 2023

    Nothing published for this version

  52. 2.18 26 Mar 2023

    Nothing published for this version

  53. 2.17 24 Feb 2023

    Nothing published for this version

  54. 2.16 21 Feb 2023

    Nothing published for this version

  55. 2.15 19 Feb 2023

    Nothing published for this version

  56. 2.14 18 Feb 2023

    Nothing published for this version

  57. 2.13 18 Feb 2023

    Nothing published for this version

  58. 2.12 18 Feb 2023

    Nothing published for this version

  59. 2.11 09 Jan 2023

    Nothing published for this version

  60. 2.10 26 Nov 2022

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive