releasing gem v1.0.0 (backwards incompatible, see changelog)
This commit is contained in:
parent
ffa677b2b0
commit
f7480d1f5a
|
@ -1,3 +1,5 @@
|
||||||
|
1.0.0 (Dec 13, 2009)
|
||||||
|
|
||||||
* Don't set resource instance variable if it has been set already - see issue #13
|
* Don't set resource instance variable if it has been set already - see issue #13
|
||||||
|
|
||||||
* Allowing :nested option to accept an array for deep nesting
|
* Allowing :nested option to accept an array for deep nesting
|
||||||
|
@ -10,6 +12,7 @@
|
||||||
|
|
||||||
* BACKWARDS INCOMPATIBLE: turning load and authorize resource methods into class methods which set up the before filter so they can accept additional arguments.
|
* BACKWARDS INCOMPATIBLE: turning load and authorize resource methods into class methods which set up the before filter so they can accept additional arguments.
|
||||||
|
|
||||||
|
|
||||||
0.2.1 (Nov 26, 2009)
|
0.2.1 (Nov 26, 2009)
|
||||||
|
|
||||||
* many internal refactorings - see issues #11 and #12
|
* many internal refactorings - see issues #11 and #12
|
||||||
|
@ -18,6 +21,7 @@
|
||||||
|
|
||||||
* support custom objects (usually symbols) in can definition - see issue #8
|
* support custom objects (usually symbols) in can definition - see issue #8
|
||||||
|
|
||||||
|
|
||||||
0.2.0 (Nov 17, 2009)
|
0.2.0 (Nov 17, 2009)
|
||||||
|
|
||||||
* fix behavior of load_and_authorize_resource for namespaced controllers - see issue #3
|
* fix behavior of load_and_authorize_resource for namespaced controllers - see issue #3
|
||||||
|
|
32
README.rdoc
32
README.rdoc
|
@ -10,7 +10,7 @@ See the RDocs[http://rdoc.info/projects/ryanb/cancan] and Wiki[http://wiki.githu
|
||||||
|
|
||||||
You can set it up as a gem in your environment.rb file.
|
You can set it up as a gem in your environment.rb file.
|
||||||
|
|
||||||
config.gem "cancan", :source => "http://gemcutter.org"
|
config.gem "cancan"
|
||||||
|
|
||||||
And then install the gem.
|
And then install the gem.
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ Alternatively you can install it as a Rails plugin.
|
||||||
script/plugin install git://github.com/ryanb/cancan.git
|
script/plugin install git://github.com/ryanb/cancan.git
|
||||||
|
|
||||||
|
|
||||||
== Setup
|
== Getting Started
|
||||||
|
|
||||||
First, define a class called Ability in "models/ability.rb".
|
First, define a class called Ability in "models/ability.rb".
|
||||||
|
|
||||||
|
@ -52,10 +52,10 @@ You can also use these methods in a controller along with the "unauthorized!" me
|
||||||
unauthorized! if cannot? :read, @article
|
unauthorized! if cannot? :read, @article
|
||||||
end
|
end
|
||||||
|
|
||||||
Setting this for every action can be tedious, therefore a before filter is also provided to automatically authorize all actions in a RESTful style resource controller.
|
Setting this for every action can be tedious, therefore the load_and_authorize_resource method is also provided to automatically authorize all actions in a RESTful style resource controller. It will set up a before filter which loads the resource into the instance variable and authorizes it.
|
||||||
|
|
||||||
class ArticlesController < ApplicationController
|
class ArticlesController < ApplicationController
|
||||||
before_filter :load_and_authorize_resource
|
load_and_authorize_resource
|
||||||
|
|
||||||
def show
|
def show
|
||||||
# @article is already loaded
|
# @article is already loaded
|
||||||
|
@ -150,6 +150,30 @@ The following aliases are added by default for conveniently mapping common contr
|
||||||
alias_action :edit, :to => :update
|
alias_action :edit, :to => :update
|
||||||
|
|
||||||
|
|
||||||
|
== Authorizing Controller Actions
|
||||||
|
|
||||||
|
As mentioned in the Getting Started section, you can use the +load_and_authorize_resource+ method in your controller to load the resource into an instance variable and authorize it. If you have a nested resource you can specify that as well.
|
||||||
|
|
||||||
|
load_and_authorize_resource :nested => :author
|
||||||
|
|
||||||
|
You can also pass an array to the :+nested+ attribute for deep nesting.
|
||||||
|
|
||||||
|
If you want to customize the loading behavior on certain actions, you can do so in a before filter.
|
||||||
|
|
||||||
|
class BooksController < ApplicationController
|
||||||
|
before_filter :find_book_by_permalink, :only => :show
|
||||||
|
load_and_authorize_resource
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def find_book_by_permalink
|
||||||
|
@book = Book.find_by_permalink!(params[:id)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
Here the @book instance variable is already set so it will not be loaded again for that action. This works for nested resources as well.
|
||||||
|
|
||||||
|
|
||||||
== Assumptions & Configuring
|
== Assumptions & Configuring
|
||||||
|
|
||||||
CanCan makes two assumptions about your application.
|
CanCan makes two assumptions about your application.
|
||||||
|
|
|
@ -4,8 +4,8 @@ Gem::Specification.new do |s|
|
||||||
s.description = "Simple authorization solution for Rails which is completely decoupled from the user's roles. All permissions are stored in a single location for convenience."
|
s.description = "Simple authorization solution for Rails which is completely decoupled from the user's roles. All permissions are stored in a single location for convenience."
|
||||||
s.homepage = "http://github.com/ryanb/cancan"
|
s.homepage = "http://github.com/ryanb/cancan"
|
||||||
|
|
||||||
s.version = "0.2.1"
|
s.version = "1.0.0"
|
||||||
s.date = "2009-11-26"
|
s.date = "2009-12-13"
|
||||||
|
|
||||||
s.authors = ["Ryan Bates"]
|
s.authors = ["Ryan Bates"]
|
||||||
s.email = "ryan@railscasts.com"
|
s.email = "ryan@railscasts.com"
|
||||||
|
|
Loading…
Reference in New Issue
Block a user