在模型中混合處理安全邏輯的代碼是不是很糟糕的設計?將安全邏輯與Ruby on Rails中的模型混合?
實施例在before_save回調
- 當前用戶從控制器層的
current_user
方法抓起編輯頁面。 - 擲異常,如果
current_user.has_permission? :edit_page
是假 - 的
editor_id
設置爲current_user.id
- 的變化記錄在一個單獨的表
該模型是不是在應用程序的唯一安全檢查。用戶界面在顯示編輯視圖之前檢查權限。該模型可以阻止View/Controller級別的任何錯誤。
注意:模型和控制器級別之間唯一的缺陷是current_user
方法。我正在處理的應用程序永遠不會允許匿名用戶。