Fix pending spec for DataMapper adapter.
This commit is contained in:
parent
6d39b0ae07
commit
d6851debd4
|
@ -15,19 +15,16 @@ module CanCan
|
||||||
end
|
end
|
||||||
|
|
||||||
def database_records
|
def database_records
|
||||||
scope = @model_class.all(:conditions => ["0=1"])
|
scope = @model_class.all(:conditions => ["0 = 1"])
|
||||||
conditions.each do |condition|
|
cans, cannots = @rules.partition { |r| r.base_behavior }
|
||||||
scope += @model_class.all(:conditions => condition)
|
# apply unions first, then differences. this mean cannot overrides can
|
||||||
end
|
cans.each { |r| scope += @model_class.all(:conditions => r.conditions) }
|
||||||
|
cannots.each { |r| scope -= @model_class.all(:conditions => r.conditions) }
|
||||||
scope
|
scope
|
||||||
end
|
end
|
||||||
|
end # class DataMapper
|
||||||
def conditions
|
end # module ModelAdapters
|
||||||
@rules.map(&:conditions)
|
end # module CanCan
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
DataMapper::Model.class_eval do
|
DataMapper::Model.class_eval do
|
||||||
include CanCan::ModelAdditions::ClassMethods
|
include CanCan::ModelAdditions::ClassMethods
|
||||||
|
|
|
@ -65,7 +65,6 @@ if ENV["MODEL_ADAPTER"] == "data_mapper"
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should fetch only the articles that are published and not secret" do
|
it "should fetch only the articles that are published and not secret" do
|
||||||
pending "the `cannot` may require some custom SQL, maybe abstract out from Active Record adapter"
|
|
||||||
@ability.can :read, Article, :published => true
|
@ability.can :read, Article, :published => true
|
||||||
@ability.cannot :read, Article, :secret => true
|
@ability.cannot :read, Article, :secret => true
|
||||||
article1 = Article.create(:published => true, :secret => false)
|
article1 = Article.create(:published => true, :secret => false)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user