2012-12-12 26 views
0

我现在有一个视图下方简化...下拉查看的网页为不同的用户角色,而管理员

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

这种观点有大量被包裹在类似的条件语句为每个用户和我场目前必须登录和退出测试帐户才能检查格式。

我想被登录为管理员,但有一个下拉菜单选择为AdminModeratorUserNot logged in

我有固溶的一些粗略的想法,无论页面呈现,但不知道是哪个按照...

  • 烤成康康舞与用户的一个额外的列,我可以从一个导航栏下拉列表形式
  • 创建用户特定的方法来设置
  • 允许url参数请求会话视图并进行相应的渲染

是否有围绕此最佳做法?

+0

我会为使用会话的第三个选项投票。 –

+0

我唯一的想法是,一旦我得到该参数,现在我必须检查它反对用户类型。不能让一个未登录的用户假装成管理员。在这一点上,似乎我需要将额外的方法放入用户或无论如何cancan ...也许不是一个坚持它的专栏... – ZMorek

+0

是的。但我认为这会增加安全性。 –

回答

1

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

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

有效用户从真实用户开始一样,但可以更改为其他内容。更改有效用户应该以具有管理权限的真实用户为条件。

有效的用户而不是在真实的用户条件所有您的布局。 在真实用户的条件下,您的“更改有效用户”下拉菜单。

+0

我喜欢有效的用户概念。我会看看我能否以某种方式将“视角”烘焙到用户模型和许可中。 – ZMorek

相关问题