2012-12-12 63 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

相關問題