Impersonator
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 %}
To install this plugin, copy the command above to your terminal.
This plugin doesn't have any reviews.