fixing marking fully_authorized on an object instance

This commit is contained in:
Ryan Bates 2011-03-25 17:05:36 -07:00
parent baa1dacc21
commit e5b76210e4
2 changed files with 5 additions and 0 deletions

View File

@ -264,6 +264,7 @@ module CanCan
end end
def fully_authorized!(action, subject) def fully_authorized!(action, subject)
subject = subject.class.to_s.underscore.pluralize.to_sym unless subject.kind_of?(Symbol) || subject.kind_of?(String)
@fully_authorized ||= [] @fully_authorized ||= []
@fully_authorized << [action.to_sym, subject.to_sym] @fully_authorized << [action.to_sym, subject.to_sym]
end end

View File

@ -261,6 +261,8 @@ describe CanCan::Ability do
@ability.should_not be_fully_authorized(:update, :ranges) @ability.should_not be_fully_authorized(:update, :ranges)
@ability.authorize! "update", "ranges" @ability.authorize! "update", "ranges"
@ability.should_not be_fully_authorized(:update, :ranges) @ability.should_not be_fully_authorized(:update, :ranges)
@ability.authorize! :update, 1..3
@ability.should be_fully_authorized(:update, :ranges)
end end
it "is not fully authorized when a block exists but no instance is used" do it "is not fully authorized when a block exists but no instance is used" do
@ -269,6 +271,8 @@ describe CanCan::Ability do
end end
@ability.authorize! :update, :ranges @ability.authorize! :update, :ranges
@ability.should_not be_fully_authorized(:update, :ranges) @ability.should_not be_fully_authorized(:update, :ranges)
@ability.authorize! :update, 1..3
@ability.should be_fully_authorized(:update, :ranges)
end end
it "is not fully authorized when attributes are required but not checked in update/create actions" do it "is not fully authorized when attributes are required but not checked in update/create actions" do