管理专用任务的可接受方式是什么

时间:2016-07-25 15:08:34

标签: ruby-on-rails

我没有将设计用于学习目的。我希望管理员能够访问仅限管理员的页面。

我创建了一个布尔类型为admin的属性,默认值为false。所以我可以通过类似current_user.admin?的内容来检查某人是否是管理员。

我正在做管理员检查,比如

before_action :admin_check, only: :show

def admin_check
  redirect_to(root_url) unless current_user.admin?
end

安全性方面是否安全?

2 个答案:

答案 0 :(得分:0)

是的,如果您删除only: :show部分,这对我来说很安全。你想保护你的其他行动,我猜......

另外,我假设没有特权的用户无法通过正常导航到达该控制器,所以我可能也会使他的会话无效,以防万一。

答案 1 :(得分:0)

该解决方案对于基本用途来说是“安全的”,只要您小心将该检查包括在需要的位置。

要获得更高级的基于角色的能力,请查看CanCanCommunity gem

使用CanCan,动作看起来像这样:

def show
  authorize! :manage, @setting
  ...
end