skip block when only class is passed to ability check, also don't pass class to block for :all - closes #116

This commit is contained in:
Ryan Bates
2010-09-02 14:23:00 -07:00
parent 04b523eea4
commit 6105edc6a7
2 changed files with 9 additions and 13 deletions

View File

@@ -25,7 +25,7 @@ module CanCan
# Matches the block or conditions hash
def matches_conditions?(action, subject, extra_args)
if @block
if @block && subject.class != Class
call_block(action, subject, extra_args)
elsif @conditions.kind_of?(Hash) && subject.class != Class
matches_conditions_hash?(subject)
@@ -95,7 +95,6 @@ module CanCan
def call_block(action, subject, extra_args)
block_args = []
block_args << action if @expanded_actions.include?(:manage)
block_args << (subject.class == Class ? subject : subject.class) if @subjects.include?(:all)
block_args << (subject.class == Class ? nil : subject)
block_args += extra_args
@block.call(*block_args)