我目前正在構建一個Rails應用程序,並試圖找出驗證用戶擁有他們正在嘗試編輯的任何數據對象的最佳方式。Rails用戶授權
我已經有了一個身份驗證系統(restful-authentication),並且我使用一個簡單的before_filter來確保用戶在可以訪問網站的某些區域之前登錄。
但是,我不確定處理用戶試圖編輯特定數據的最佳方式 - 例如,讓我的網站上的用戶可以擁有圖書,並且他們可以編輯圖書的屬性(標題,作者,網頁等),但他們應該只能爲自己擁有的圖書做到這一點。
在我的書籍控制器上的'編輯'方法,我會發現只有檢索current_user擁有的書籍。但是,如果另一個用戶知道該書的ID,他們可以輸入http://website.com/book/7/edit,並且控制器會驗證他們是否已登錄,然後顯示該書的編輯頁面(似乎繞過控制器)。
處理這個問題的最佳方法是什麼?它更多的是我不明白的Rails約定路由問題(能夠直接進入編輯頁面),還是應該在我的模型中添加before_find,before_save,before_update,after_find等回調?
我沒有意識到這是一個需要插件的東西 - 感謝提示。我相信我會去參加康康的插件。 – 2010-04-29 02:58:00
我會建議你去authlogic。 :) – 2010-04-29 13:04:46
你也許會考慮我的寶石,權威:https://github.com/nathanl/authority – 2012-04-20 18:22:24