2012-04-15 7 views
2

다음 코드에서 라인 authorize! :admin, model의 의미는 무엇입니까? 코드에서 아무 곳에서나 :admin 작업을 찾을 수 없습니다. 이 값이 :manage 옵션과 비슷합니까?Spree 관리자 권한

spree_auth-1.0.3/app/controllers/spree/admin/admin_controller_decorator.rb: 

require File.expand_path('../../base_controller_decorator', __FILE__) 
Spree::Admin::BaseController.class_eval do 
    before_filter :authorize_admin 

    def authorize_admin 
    begin 
     model = model_class 
    rescue 
     model = Object 
    end 
    authorize! :admin, model 
    authorize! params[:action].to_sym, model 
    end 

    protected 
    def model_class 
     "Spree::#{controller_name.classify}".constantize 
    end 
end 

답변

2

이 방법은 Cancan 보석에서 유래했습니다. current_userSpree::Admin::BaseController.

에서 상속받은 모든 컨트롤러 내에서 작업을 수행 할 권한이 있는지 확인하는 데 사용됩니다.