topshelfcraft/impersonator

你想成为谁?

4.0.0 2022-11-16 23:19 UTC

This package is auto-updated.

Last update: 2024-09-17 03:16:38 UTC


README

一个Craft CMS的插件

Top Shelf Craft制作
Michael Rog,所有者

你想成为谁?

TL;DR.

Impersonator为授权用户提供方便的控制器操作,以模仿和解除模仿其他用户。

安装

访问Craft控制面板中的插件商店,搜索Impersonator,然后点击安装插件。

或者,通过Composer安装

composer require topshelfcraft/impersonator

配置

您可以通过配置目录中的impersonator.php文件来配置表单参数名称和模仿会话持续时间。

use craft\helpers\App;
use TopShelfCraft\Impersonator\Settings;

return Settings::create()
    ->accountParamName('accountToImpersonate')
    ->impersonatorSessionDuration('P1H');

使用方法

模仿

从授权用户会话中,向impersonator/impersonator/impersonate动作提交POST请求,并提供要模仿的账户的标识符(用户名、电子邮件或ID)

<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>

(您可以通过设置accountParamName配置项来自定义表单输入的name。)

模板标签

当模仿会话处于活动状态时,该插件提供一些有用的信息,您可以在模板中使用这些信息

  • 执行模仿的用户ID

    {{ impersonator.getImpersonatorId() }}
  • 执行模仿的用户

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

解除模仿

该插件会跟踪启动模仿的会话,因此您可以方便地为用户提供结束模仿并恢复原始身份的方式,而无需再次登录(只要原始会话仍然有效)

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

支持

版本4.x与Craft 4.0+兼容。

如果您发现了一个错误,或者有任何问题,请打开GitHub问题,如果您有热情,还可以提交一个PR。

贡献者