我目前正在构建一个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