我有一个传统的Rails 4应用程序,其中包含用户模型和Sorcery进行身份验证。用户模型有一个' admin'旗。什么是实现管理员临时成为另一个用户的能力的最佳方式(为了查看用户看到的内容以帮助调试问题),然后又回到原来的,启用管理员的用户?
答案 0 :(得分:1)
这是一个实现:
http://robots.thoughtbot.com/how-to-masquerade-as-another-user-to-see-how-they-use-yo
我认为这就是你要找的东西
答案 1 :(得分:0)
我不知道rails,但在Unix下,需要允许你的可执行文件在用户模式之间切换。这可以通过在可执行文件上设置's'位并将所有者和/或组设置为执行您希望应用程序能够执行的任何操作来完成。 (即大多数情况下,您使用root作为所有者,使用srwxr-xr-x作为权限,这是4755作为模式编号)。
完成后,您的应用程序可以使用函数setuid(<uid>)
。如果您使用root,则&lt; uid&gt;将是0(零)。
在Linux下,您还有seteuid()
,setfsuid()
和setreuid()
。
为确保您做的正确,我建议您阅读相应的手册页。
答案 2 :(得分:0)
我没有这方面的经验,但也许你可以为你的用户模型添加一个超级用户标志。如果您是超级用户,则可以调整admin标志。超级用户的唯一目的就是能够关闭或打开管理员权限。现在,您可以在用户或管理员之间切换,并查看用户看到的内容。完成后,启用管理员,然后重新获得管理界面。
这可行,但我不知道它是否是您用例的最佳解决方案。只是在这里理论化。 :)