diff --git a/lib/access-granted/permission.rb b/lib/access-granted/permission.rb index 608917f..de0cfe6 100644 --- a/lib/access-granted/permission.rb +++ b/lib/access-granted/permission.rb @@ -20,7 +20,7 @@ def matches_subject?(subject) end def matches_conditions?(subject) - if @block && !subject.is_a?(Class) + if @block @block.call(subject, @user) else matches_hash_conditions?(subject) diff --git a/spec/permission_spec.rb b/spec/permission_spec.rb index 61097a8..40c09b3 100644 --- a/spec/permission_spec.rb +++ b/spec/permission_spec.rb @@ -14,12 +14,6 @@ perm = subject.new(true, :read, sub.class, nil, {}, proc {|el| el.published? }) expect(perm.matches_conditions?(sub)).to eq(true) end - - it "does not match proc conditions when given a class instead of an instance" do - sub = double("Element", published?: true) - perm = subject.new(true, :read, sub.class, nil, {}, proc {|el| el.published? }) - expect(perm.matches_conditions?(sub.class)).to eq(true) - end end describe "#matches_hash_conditions?" do diff --git a/spec/policy_spec.rb b/spec/policy_spec.rb index eef305d..4a10b17 100644 --- a/spec/policy_spec.rb +++ b/spec/policy_spec.rb @@ -68,7 +68,7 @@ def configure klass = Class.new do include AccessGranted::Policy - def configure(user) + def configure role :member do can :manage, FakePost end