Merge pull request #765 from jonsgreen/issue/cancan_inserting_and_null_687
Issue #687: cancan inserting "AND (NULL)" at the end of sql
This commit is contained in:
commit
4dcd544594
|
@ -55,7 +55,8 @@ module CanCan
|
|||
end
|
||||
|
||||
def unmergeable?
|
||||
@conditions.respond_to?(:keys) && (! @conditions.keys.first.kind_of? Symbol)
|
||||
@conditions.respond_to?(:keys) && @conditions.present? &&
|
||||
(!@conditions.keys.first.kind_of? Symbol)
|
||||
end
|
||||
|
||||
def associations_hash(conditions = @conditions)
|
||||
|
|
|
@ -20,10 +20,12 @@ if ENV["MODEL_ADAPTER"].nil? || ENV["MODEL_ADAPTER"] == "active_record"
|
|||
t.boolean "secret"
|
||||
t.integer "priority"
|
||||
t.integer "category_id"
|
||||
t.integer "user_id"
|
||||
end
|
||||
model do
|
||||
belongs_to :category
|
||||
has_many :comments
|
||||
belongs_to :user
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -37,6 +39,15 @@ if ENV["MODEL_ADAPTER"].nil? || ENV["MODEL_ADAPTER"] == "active_record"
|
|||
end
|
||||
end
|
||||
|
||||
with_model :user do
|
||||
table do |t|
|
||||
|
||||
end
|
||||
model do
|
||||
has_many :articles
|
||||
end
|
||||
end
|
||||
|
||||
before(:each) do
|
||||
Article.delete_all
|
||||
Comment.delete_all
|
||||
|
@ -233,6 +244,15 @@ if ENV["MODEL_ADAPTER"].nil? || ENV["MODEL_ADAPTER"] == "active_record"
|
|||
@ability.model_adapter(Article, :read).joins.should == [{:project=>[:comments]}]
|
||||
end
|
||||
|
||||
it "should merge :all conditions with other conditions" do
|
||||
user = User.create!
|
||||
article = Article.create!(:user => user)
|
||||
ability = Ability.new(user)
|
||||
ability.can :manage, :all
|
||||
ability.can :manage, Article, :user_id => user.id
|
||||
Article.accessible_by(ability).should == [article]
|
||||
end
|
||||
|
||||
it "should restrict articles given a MetaWhere condition" do
|
||||
@ability.can :read, Article, :priority.lt => 2
|
||||
article1 = Article.create!(:priority => 1)
|
||||
|
|
|
@ -44,4 +44,9 @@ describe CanCan::Rule do
|
|||
|
||||
@rule.should be_unmergeable
|
||||
end
|
||||
|
||||
it "should be mergeable if conditions is an empty hash" do
|
||||
@conditions = {}
|
||||
@rule.should_not be_unmergeable
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue
Block a user