topshelfcraft / impersonator
你想成为谁?
4.0.0
2022-11-16 23:19 UTC
Requires
- craftcms/cms: ^4.0
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。
贡献者
- 插件开发:Michael Rog / @michaelrog
- "Disguise"图标:由Adrien Coquet提供,通过The Noun Project