Merge pull request #556 from mauriciozaffari/master
Pass forward :if and :unless options to the before filter.
This commit is contained in:
commit
70515de8c1
|
@ -6,8 +6,8 @@ module CanCan
|
||||||
options = args.extract_options!
|
options = args.extract_options!
|
||||||
resource_name = args.first
|
resource_name = args.first
|
||||||
before_filter_method = options.delete(:prepend) ? :prepend_before_filter : :before_filter
|
before_filter_method = options.delete(:prepend) ? :prepend_before_filter : :before_filter
|
||||||
controller_class.send(before_filter_method, options.slice(:only, :except)) do |controller|
|
controller_class.send(before_filter_method, options.slice(:only, :except, :if, :unless)) do |controller|
|
||||||
controller.class.cancan_resource_class.new(controller, resource_name, options.except(:only, :except)).send(method)
|
controller.class.cancan_resource_class.new(controller, resource_name, options.except(:only, :except, :if, :unless)).send(method)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -49,14 +49,14 @@ describe CanCan::ControllerAdditions do
|
||||||
|
|
||||||
it "authorize_resource should setup a before filter which passes call to ControllerResource" do
|
it "authorize_resource should setup a before filter which passes call to ControllerResource" do
|
||||||
stub(CanCan::ControllerResource).new(@controller, nil, :foo => :bar).mock!.authorize_resource
|
stub(CanCan::ControllerResource).new(@controller, nil, :foo => :bar).mock!.authorize_resource
|
||||||
mock(@controller_class).before_filter(:except => :show) { |options, block| block.call(@controller) }
|
mock(@controller_class).before_filter(:except => :show, :if => true) { |options, block| block.call(@controller) }
|
||||||
@controller_class.authorize_resource :foo => :bar, :except => :show
|
@controller_class.authorize_resource :foo => :bar, :except => :show, :if => true
|
||||||
end
|
end
|
||||||
|
|
||||||
it "load_resource should setup a before filter which passes call to ControllerResource" do
|
it "load_resource should setup a before filter which passes call to ControllerResource" do
|
||||||
stub(CanCan::ControllerResource).new(@controller, nil, :foo => :bar).mock!.load_resource
|
stub(CanCan::ControllerResource).new(@controller, nil, :foo => :bar).mock!.load_resource
|
||||||
mock(@controller_class).before_filter(:only => [:show, :index]) { |options, block| block.call(@controller) }
|
mock(@controller_class).before_filter(:only => [:show, :index], :unless => false) { |options, block| block.call(@controller) }
|
||||||
@controller_class.load_resource :foo => :bar, :only => [:show, :index]
|
@controller_class.load_resource :foo => :bar, :only => [:show, :index], :unless => false
|
||||||
end
|
end
|
||||||
|
|
||||||
it "skip_authorization_check should set up a before filter which sets @_authorized to true" do
|
it "skip_authorization_check should set up a before filter which sets @_authorized to true" do
|
||||||
|
|
Loading…
Reference in New Issue
Block a user