我目前有一个简化的视图......
<% if can? :manage, @task %>
Admin
<% elsif can? :update, @task %>
Moderator
<% elsif current_user %>
User
<% else %>
Not logged in
<% end %>
此视图包含大量字段,这些字段包含在每个用户的类似条件中,我当前必须登录和退出测试帐户才能检查格式。
我想以管理员身份登录,但有一个下拉列表可选择是将网页呈现为Admin
还是Moderator
或User
还是Not logged in
我对解决方案有一些粗略的想法,但不知道应该遵循哪些......
这是否有最好的做法?
答案 0 :(得分:1)
如果你实现了类似于Unix的真实/有效用户二分法的东西呢?
您现有的基础架构是基于发生的任何身份验证的“真实”用户,但您还将“有效用户”与每个会话相关联。
有效用户与真实用户的开头相同,但可以更改为其他用户。更改有效用户应以拥有管理员权限的真实用户为条件。
调整有效用户的所有布局,而不是真实用户。 在真实的用户上调整“更改有效用户”下拉列表。