【问题标题】:Dropdown to view a page as different user roles while admin管理员时以不同用户角色查看页面的下拉菜单
【发布时间】: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 %>

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

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

我有一些粗略的解决思路,但不知道该遵循哪个...

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

有没有最佳实践?

【问题讨论】:

  • 我会投票支持使用会话的第三个选项。
  • 我对这个想法唯一的疑虑是,一旦我得到了那个参数,现在我必须根据用户类型检查它。不能让未登录的用户冒充管理员。在那一点上,我似乎需要将额外的方法放入用户或 cancan 无论如何......也许不是一个列来持久化它......
  • 是的。但我认为这会增加安全性。

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


【解决方案1】:

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

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

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

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

【讨论】:

  • 我喜欢有效的用户概念。我会看看我是否能以某种方式将“透视”融入用户模型并获得许可。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-17
  • 2014-07-06
  • 2018-04-23
  • 2013-06-22
  • 1970-01-01
相关资源
最近更新 更多