consider ancestors when matching classes in Ability#can, this way it works with STI - closes #55
This commit is contained in:
@@ -68,7 +68,11 @@ module CanCan
|
||||
end
|
||||
|
||||
def matches_subject?(subject)
|
||||
@subjects.include?(:all) || @subjects.include?(subject) || @subjects.any? { |sub| sub.kind_of?(Class) && subject.kind_of?(sub) }
|
||||
@subjects.include?(:all) || @subjects.include?(subject) || matches_subject_class?(subject)
|
||||
end
|
||||
|
||||
def matches_subject_class?(subject)
|
||||
@subjects.any? { |sub| sub.kind_of?(Class) && (subject.kind_of?(sub) || subject.kind_of?(Class) && subject.ancestors.include?(sub)) }
|
||||
end
|
||||
|
||||
def matches_conditions_hash?(subject, conditions = @conditions)
|
||||
|
||||
Reference in New Issue
Block a user