0

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

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

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

我想以管理员身份登录,但有一个下拉菜单来选择页面是否呈现为Adminor Moderatoror UserorNot logged in

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

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

有没有围绕这个的最佳实践?

4

1 回答 1

1

如果你实现了像 Unix 的真实/有效用户二分法这样的东西呢?

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

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

将您的所有布局设置为有效用户而不是真实用户。将您的“更改有效用户”下拉菜单设置为真实用户。

于 2012-12-15T01:35:03.840 回答