[英]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.