我没有将设计用于学习目的。我希望管理员能够访问仅限管理员的页面。
我创建了一个布尔类型为admin
的属性,默认值为false。所以我可以通过类似current_user.admin?
的内容来检查某人是否是管理员。
我正在做管理员检查,比如
before_action :admin_check, only: :show
def admin_check
redirect_to(root_url) unless current_user.admin?
end
安全性方面是否安全?
答案 0 :(得分:0)
是的,如果您删除only: :show
部分,这对我来说很安全。你想保护你的其他行动,我猜......
另外,我假设没有特权的用户无法通过正常导航到达该控制器,所以我可能也会使他的会话无效,以防万一。
答案 1 :(得分:0)
该解决方案对于基本用途来说是“安全的”,只要您小心将该检查包括在需要的位置。
要获得更高级的基于角色的能力,请查看CanCanCommunity gem。
使用CanCan,动作看起来像这样:
def show
authorize! :manage, @setting
...
end