cancan/spec
Adam Wróbel 3639ca90eb Fixes inherited_resources collection authorization
This reverts e3eab13b86

I don't know what was the idea of that, but it turned out REAL bad.

`collection` sets the collection instance variable. `resource_base` is used all
over CanCan. It's also used inside `load_collection?` which is checked before
`load_collection` is called. That means we actually set the collection instance
variable through inherited_resources (without any authorization whatsoever) before trying to load it through CanCan using `accessible_by`.

    1. def load_resource
    2.  unless skip?(:load)
    3.    if load_instance?
    4.      self.resource_instance ||= load_resource_instance
    5.    elsif load_collection?
    6.      self.collection_instance ||= load_collection
    7.    end
    8.  end
    9. end

`collection_instance` is set on line 5 instead of line 6.
2011-03-16 01:20:35 +01:00
..
cancan Fixes inherited_resources collection authorization 2011-03-16 01:20:35 +01:00
matchers.rb adding Gemfile, to get specs running just bundle and rake - closes #163 2010-10-05 10:09:37 -07:00
README.rdoc adding spec_all rake task to spec readme 2010-12-30 15:51:57 -08:00
spec_helper.rb moving with_model rspec configuration into Active Record model adapter spec 2011-01-04 10:55:48 -08:00
spec.opts passing a hash to can? will check permissions on association, this is done automatically in authorize_resource - closes #121 2010-09-03 11:01:55 -07:00

= CanCan Specs

== Running the specs

To run the specs first run the +bundle+ command to install the necessary gems and the +rake+ command to run the specs.

  bundle
  rake

The specs currently require Ruby 1.8.7. Ruby 1.9.2 support will be coming soon.


== Model Adapters

CanCan offers separate specs for different model adapters (such as Mongoid and Data Mapper). By default it will use Active Record but you can change this by setting the +MODEL_ADAPTER+ environment variable before running. You can run the +bundle+ command with this as well to ensure you have the installed gems.

  MODEL_ADAPTER=data_mapper bundle
  MODEL_ADAPTER=data_mapper rake

The different model adapters you can specify are:

* active_record (default)
* data_mapper
* mongoid

You can also run the +spec_all+ rake task to run specs for each adapter.

  rake spec_all