Impersonator provides convenient controller actions for authorized users to impersonate, and un-impersonate, other users.

Impersonation

From an authorized user session, submit a POST request to the impersonator/impersonator/impersonate action with an identifier (Username, Email, or ID) of the account to impersonate:

<form method="post">
  {{ csrfInput() }}
  {{ actionInput('impersonator/impersonator/impersonate') }}
  {{ redirectInput('my/start/page/path') }}
  <input name="impersonate" placeholder="ID, username, or email">
  <button type="submit">Impersonate!</button>
</form>

(You can customize the form input name by setting the accountParamName config item.)

Template Tags

When an impersonation session is active, the plugin provides some useful info for you to use in your templates:

  • The ID of the user performing the impersonation:

    {{ impersonator.getImpersonatorId() }}
    
  • The user performing the impersonation:

    {{ impersonator.getImpersonatorIdentity().fullName }} is impersonating {{ currentUser.fullName }}
    

Un-impersonation

The plugin keeps track of the session that initiated the impersonation, so you can provide your user a convenient way to end the impersonation and assume their original identity, without needing to log in again (as long as their original session is still valid):

{% if impersonator.getImpersonatorId() %}
  <form method="post">
    {{ csrfInput() }}
    {{ actionInput('impersonator/impersonator/unimpersonate') }}
    {{ redirectInput('my/return/page/path') }}
    <button type="submit">Stop Impersonating</button>
  </form>
{% endif %}
Installation Instructions

To install this plugin, copy the command above to your terminal.

Active Installs
4
Version
4.0.0
License
Craft
Compatibility
Craft 3, Craft 4
Last release
November 16, 2022
Activity (30 days)
0
Closed Issues
0
Open Issues
0
Merged PRs
0
Open PRs