用户模拟



我需要一些关于我以前从未做过的事情的建议/提示。作为一名支持用户,我需要模拟一名登录用户,并在支持用户执行维护任务时屏蔽该用户的界面(与登录用户具有相同的体验)。

该应用程序的前端是用Angular 2编写的,并且从基于Drupal的后端获取数据。

问题是,我想使用网络套接字向登录用户发送实时信息,以及如何阻止他的界面?

编辑:所以我有了新的要求。因此,支持用户可以模拟用户,但如果用户已登录,则支持需要向其他用户发送实时通知,然后阻止其界面(普通用户)。我可以用drupal+angular做这件事吗?或者我需要节点js作为中间sv.吗

我会执行以下操作:将用户表扩展2列〔ImpersonatedAsUserKey〕,〔UiBlocked〕

某个网格,支持者可以通过按钮搜索ActiveUsers模仿。当支持者点击"模拟"时

将支持用户的数据库行更新为[ImpernatedAsUserKey]="selectedUserKey">

将受影响用户的数据库行更新为[UiBlocked]=true

向受影响的用户发送SocketMessage以通过模式对话框更改UI告知他正在接受支持用户的支持。

然后,在Supporter的实例中,通过[ImpernatedAsUserKey]像受影响的用户一样对网络重新收费

需要记住的一点是:如果用户刷新页面,请记住检查数据库中的UiBlocked值,以在有值的情况下显示drop mode。

完成"模拟"后,将数据库值重置为默认值并向用户发送套接字消息以隐藏丢弃模式。

并重新加载Support UI以获得他的默认UI。

致以最良好的问候!

最新更新