我正在尝试保护某些操作不被未经授权的用户访问。
这是我的控制器的一个小例子:
class RestaurantsController < ApplicationController
before_filter :require_admin, :only => [:new, :create, :update, :edit, :destroy]
#...yada yada yada...
end
在我的 ApplicationController 中(因为我需要保护许多控制器中的相同操作)我放置了辅助方法,所以我不再重复自己。
class ApplicationController < ActionController::Base
protect_from_forgery
private
def current_user
@current_user ||= User.find(session[:user_id]) if session[:user_id]
end
def require_admin
???
end
helper_method :current_user
end
我应该从我的 require_admin 方法返回什么,以便:
current_user
如果不是管理员,则阻止流量。current_user
如果是管理员,则允许常规流程。
另外,我需要放置require_admin
一个helper_method
吗?
我知道如何处理这个is admin?
位,我只需要知道从我的过滤器调用的辅助方法返回什么。
有什么建议么?