簡體   English   中英

Rails中的用戶權限和角色

[英]User rights and roles in Rails

我正在開發一個Rails Web應用程序,但到目前為止,我需要開始思考如何組織用戶。 基本上,這應該很容易。 Current_user應該能夠操作自己的個人資料,在個人資料中添加,編輯,刪除項目,但不能操作其個人資料上的評論或評分。 與消息相同,這是合乎邏輯的。 顯然還有更多,但是現在我感到迷茫,因為我是Ruby和Rails的新手。

我讀到,基本上有兩種選擇可以達到我希望的結果:CanCan和Pundit。 因此,我聽說,在建立表之間的關系之后安裝Pundit gem可能會對代碼產生負面影響,該代碼現在可以正常運行。 我正在尋找建議,使用哪種寶石? 也許還有另一種方法,因為我基本上只有兩個角色:current_user和user / profile(我同時擁有Profile和User模型)。 不過,也許我也需要管理員。

至於current_user是唯一允許操作其配置文件的用戶,則不需要CanCan。 假設您正在使用Devise進行用戶身份驗證,則只需在控制器中設置一個before_action即可對發出請求的用戶進行身份驗證:

 before_action :authenticate_user! 

然后,在相關方法中,您只需檢查current_user是否擁有配置文件:

def update 
  post = Post.find(params[:id])
  if post.user_id == current_user.id 
   #do stuff
  end 
end 

處理管理員將是類似的。 基本上,您將在User表中有一個admin布爾值,這樣您就可以檢查current_user == post.user || current_user.admin? current_user == post.user || current_user.admin?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM