merging with master
This commit is contained in:
commit
bcac159b3e
|
@ -1,3 +1,10 @@
|
||||||
|
1.6.3 (March 25, 2011)
|
||||||
|
|
||||||
|
* Make sure ActiveRecord::Relation is defined before checking conditions against it so Rails 2 is supported again - see issue #312
|
||||||
|
|
||||||
|
* Return subject passed to authorize! - see issue #314
|
||||||
|
|
||||||
|
|
||||||
1.6.2 (March 18, 2011)
|
1.6.2 (March 18, 2011)
|
||||||
|
|
||||||
* Fixed instance loading when :singleton option is used - see issue #310
|
* Fixed instance loading when :singleton option is used - see issue #310
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
Gem::Specification.new do |s|
|
Gem::Specification.new do |s|
|
||||||
s.name = "cancan"
|
s.name = "cancan"
|
||||||
s.version = "1.6.2"
|
s.version = "1.6.3"
|
||||||
s.author = "Ryan Bates"
|
s.author = "Ryan Bates"
|
||||||
s.email = "ryan@railscasts.com"
|
s.email = "ryan@railscasts.com"
|
||||||
s.homepage = "http://github.com/ryanb/cancan"
|
s.homepage = "http://github.com/ryanb/cancan"
|
||||||
|
|
|
@ -223,6 +223,7 @@ module CanCan
|
||||||
elsif sufficient_attribute_check?(action, subject, attribute) && sufficient_condition_check?(action, subject)
|
elsif sufficient_attribute_check?(action, subject, attribute) && sufficient_condition_check?(action, subject)
|
||||||
fully_authorized!(action, subject)
|
fully_authorized!(action, subject)
|
||||||
end
|
end
|
||||||
|
subject
|
||||||
end
|
end
|
||||||
|
|
||||||
def unauthorized_message(action, subject)
|
def unauthorized_message(action, subject)
|
||||||
|
|
|
@ -99,7 +99,7 @@ module CanCan
|
||||||
|
|
||||||
def override_scope
|
def override_scope
|
||||||
conditions = @rules.map(&:conditions).compact
|
conditions = @rules.map(&:conditions).compact
|
||||||
if conditions.any? { |c| c.kind_of?(ActiveRecord::Relation) }
|
if defined?(ActiveRecord::Relation) && conditions.any? { |c| c.kind_of?(ActiveRecord::Relation) }
|
||||||
if conditions.size == 1
|
if conditions.size == 1
|
||||||
conditions.first
|
conditions.first
|
||||||
else
|
else
|
||||||
|
|
|
@ -359,7 +359,30 @@ describe CanCan::Ability do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
it "raises access denied exception with default message if not specified" do
|
it "should not raise access denied exception if ability is authorized to perform an action and return subject" do
|
||||||
|
@ability.can :read, :foo
|
||||||
|
lambda {
|
||||||
|
@ability.authorize!(:read, :foo).should == :foo
|
||||||
|
}.should_not raise_error
|
||||||
|
end
|
||||||
|
|
||||||
|
it "should know when block is used in conditions" do
|
||||||
|
@ability.can :read, :foo
|
||||||
|
@ability.should_not have_block(:read, :foo)
|
||||||
|
@ability.can :read, :foo do |foo|
|
||||||
|
false
|
||||||
|
end
|
||||||
|
@ability.should have_block(:read, :foo)
|
||||||
|
end
|
||||||
|
|
||||||
|
it "should know when raw sql is used in conditions" do
|
||||||
|
@ability.can :read, :foo
|
||||||
|
@ability.should_not have_raw_sql(:read, :foo)
|
||||||
|
@ability.can :read, :foo, 'false'
|
||||||
|
@ability.should have_raw_sql(:read, :foo)
|
||||||
|
end
|
||||||
|
|
||||||
|
it "should raise access denied exception with default message if not specified" do
|
||||||
begin
|
begin
|
||||||
@ability.authorize! :read, :books
|
@ability.authorize! :read, :books
|
||||||
rescue CanCan::AccessDenied => e
|
rescue CanCan::AccessDenied => e
|
||||||
|
@ -370,9 +393,11 @@ describe CanCan::Ability do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
it "does not raise access denied exception if ability is authorized to perform an action" do
|
it "does not raise access denied exception if ability is authorized to perform an action and return subject" do
|
||||||
@ability.can :read, :books
|
@ability.can :read, :books
|
||||||
lambda { @ability.authorize!(:read, :books) }.should_not raise_error
|
lambda {
|
||||||
|
@ability.authorize!(:read, :books).should == :books
|
||||||
|
}.should_not raise_error
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user