下拉列表以在管理员时将页面视为不同的用户角色

时间:2012-12-12 06:55:39

标签: ruby-on-rails cancan rails-3.1

我目前有一个简化的视图......

<% if can? :manage, @task %>
  Admin 
<% elsif can? :update, @task %>
  Moderator
<% elsif current_user %>
  User
<% else %>
  Not logged in
<% end %>

此视图包含大量字段,这些字段包含在每个用户的类似条件中,我当前必须登录和退出测试帐户才能检查格式。

我想以管理员身份登录,但有一个下拉列表可选择是将网页呈现为Admin还是ModeratorUser还是Not logged in

我对解决方案有一些粗略的想法,但不知道应该遵循哪些......

  • 使用我可以从导航栏下拉列表
  • 设置的额外列添加到cancan中
  • 创建用户特定方法
  • 允许url参数请求会话视图并相应地呈现

这是否有最好的做法?

1 个答案:

答案 0 :(得分:1)

如果你实现了类似于Unix的真实/有效用户二分法的东西呢?

您现有的基础架构是基于发生的任何身份验证的“真实”用户,但您还将“有效用户”与每个会话相关联。

有效用户与真实用户的开头相同,但可以更改为其他用户。更改有效用户应以拥有管理员权限的真实用户为条件。

调整有效用户的所有布局,而不是真实用户。 在真实的用户上调整“更改有效用户”下拉列表。