【发布时间】:2012-12-12 06:55:38
【问题描述】:
我目前有一个简化的视图...
<% 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
我有一些粗略的解决思路,但不知道该遵循哪个...
- 在 cancan 中添加一个额外的用户列,我可以从导航栏下拉表单中设置该列
- 创建用户特定的方法
- 允许 url 参数请求会话视图并相应地呈现
有没有最佳实践?
【问题讨论】:
-
我会投票支持使用会话的第三个选项。
-
我对这个想法唯一的疑虑是,一旦我得到了那个参数,现在我必须根据用户类型检查它。不能让未登录的用户冒充管理员。在那一点上,我似乎需要将额外的方法放入用户或 cancan 无论如何......也许不是一个列来持久化它......
-
是的。但我认为这会增加安全性。
标签: ruby-on-rails cancan rails-3.1