簡體   English   中英

聲明式授權:對特定屬性限制模型操作

[英]Declarative Authorization: restrict model actions on specific attributes

我是Rails的新手,我正在嘗試建立一個授權系統,該系統允許我控制用戶可以修改模型的哪些屬性。

我對基於角色的授權使用declarative_authorization。 這已經為我提供了很多功能:根據用戶的角色,用戶可以在控制器中執行的操作以及基本上允許用戶對模型執行的操作來限制用戶在視圖中看到的內容。

但是,我只是找不到關於如何根據角色將操作限制在模型的特定屬性上的答案。

示例:允許具有:guest角色的用戶更新用戶帳戶的某些屬性:當他嘗試使用錯誤的密碼登錄時,我要更新將使該帳戶成為用戶帳戶的特定字段不活躍。 :guest角色應該永遠不能更改該用戶帳戶的昵稱。

因此,我在用戶模型中使用了“ using_access_control”方法,但是這要么賦予該帳戶“所有屬性”的“更新”特權,要么完全不賦予“更新”特權(取決於角色)。

我知道“ strong_parameters”是一種基本可以使這種功能可用的寶石,但是我不知道如何將“ declarative_authorization”和“ strong_parameters”組合在一起,或者如何通過“ declarative_authorization”簡單地實現。

有人可以指出我的解決方案嗎?

非常感謝!

Authorization::Maintenance::without_access_control do
  # do something
end

我希望這可以幫到你。

暫無
暫無

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

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