Ryan Bates
333ddf1970
properly pass along resource name without slice error - closes #112
2010-08-07 08:33:31 -07:00
Ryan Bates
f8631dcc93
fixing error on protected sanitize_sql - closes #111
2010-08-06 23:24:04 -07:00
Ryan Bates
75ce2bdefa
allow :parent => false option to work in load/authorize resource
2010-08-06 14:26:57 -07:00
Ryan Bates
c9e0f4e3ef
renaming :singular resource option to :singleton
2010-08-06 13:06:18 -07:00
Ryan Bates
236cece3b3
adding :find_by option to load_resource - closes #19
2010-08-06 11:18:54 -07:00
Ryan Bates
84f4c904b7
adding :singular option to support has_one associations in load/authorize resource - closes #93
2010-08-06 11:03:10 -07:00
Ryan Bates
6998e8bdd1
support multiple resources in :through option of load_resource, this makes polymorphic associations possible - closes #73
2010-08-06 10:35:42 -07:00
Ryan Bates
961b8c2477
consider ancestors when matching classes in Ability#can, this way it works with STI - closes #55
2010-08-06 10:06:37 -07:00
Ryan Bates
a157b65fbf
adding :instance_name option to load/authorize_resource - closes #44
2010-08-06 09:35:07 -07:00
Ryan Bates
47f0aa597e
change how params are passed to ControllerResource and use HashWithIndifferentAccess in tests
2010-08-06 09:24:01 -07:00
Ryan Bates
67b069579e
don't pass nil to 'new' call when no params are specified - closes #63
2010-08-05 16:52:37 -07:00
Ryan Bates
156839b73e
only use the :read action when authorizing parent resources
2010-08-05 16:24:08 -07:00
Ryan Bates
25a1c553bf
adding :through option to replace :nesting option and moving ResourceAuthorization class code into ControllerResource
2010-08-05 16:12:30 -07:00
Ryan Bates
9b26f4d767
fixing specs for older versions of ruby and rspec
2010-07-21 11:56:19 -07:00
Ryan Bates
25637bb33a
removing extra white space at end of lines
2010-07-21 11:45:26 -07:00
Ryan Bates
ba8cb3cf6d
refactoring query.joins
2010-07-20 17:05:17 -07:00
Ryan Bates
e098ddaacd
refactoring query.conditions
2010-07-20 16:00:22 -07:00
Ryan Bates
964a4765b1
removing need to pass tableize option around for query conditions
2010-07-20 13:43:43 -07:00
Ryan Bates
a42e067f3b
extracting out Query class for generating sql conditions and association joins
2010-07-20 13:20:01 -07:00
Ryan Bates
60848143b7
refactoring can definition matching behavior
2010-07-20 11:04:03 -07:00
Ryan Bates
5d8f04363d
merging with master and resolving a couple conflicts
2010-07-19 16:36:01 -07:00
Ryan Bates
cad425989e
supporting deeply nested aliases - closes #98
2010-07-19 16:03:09 -07:00
Yura Sokolov
75eb1917f9
add test for single cannot
definition
2010-05-25 14:28:29 +04:00
Yura Sokolov
5fd793090a
fix logic error for single cannot
condition - it should return no records
2010-05-25 14:09:01 +04:00
Yura Sokolov
ac19422a90
add tests for merging conditions and joins
2010-05-25 14:02:26 +04:00
Yura Sokolov
9c0346b90b
can accept array for sql sanitizing in conditions
2010-05-25 14:01:53 +04:00
Yura Sokolov
bcab8d6369
fix error with single cannot condition
2010-05-25 12:14:01 +04:00
Yura Sokolov
46f03013f3
Merge remote branch 'upstream/master'
...
Conflicts:
lib/cancan/ability.rb
lib/cancan/active_record_additions.rb
lib/cancan/can_definition.rb
spec/cancan/ability_spec.rb
2010-05-24 15:17:10 +04:00
Ryan Bates
1ade44221a
load parent resources for collection actions such 'index'
2010-05-21 15:22:21 -07:00
Ryan Bates
2a3dd85a18
adding :name option to load_and_authorize_resource if it does not match controller - closes #65
2010-05-21 14:20:45 -07:00
Ryan Bates
dfd84a10ed
improving inline documentation
2010-05-21 13:41:24 -07:00
John Allison
7543eedd6a
fixing issue when using accessible_by with nil can conditions - closes #66
2010-05-20 17:06:10 -07:00
Logan Raarup
605063b974
Make sure conditions on associations are pluralized
2010-05-21 07:31:29 +08:00
Sokolov Yura
7d7d249182
passing throw matching rules with not matching conditions
...
Main goal is to allow:
cannot :manage, :all
can :read, :all
can :manage, User, :id=>user.id
can :manage, User, :manager_id=>user.id
Signed-off-by: Sokolov Yura <funny.falcon@gmail.com>
2010-05-16 22:13:02 +04:00
Ryan Bates
06296b0a40
support has_many association or arrays in can conditions hash
2010-04-22 17:39:22 -07:00
Ryan Bates
e20081454f
adding joins clause to accessible_by when conditions are across associations
2010-04-20 17:02:28 -07:00
Ryan Bates
4da31c0709
can has cheezburger? (thanks Seivan)
2010-04-20 14:24:26 -07:00
Ryan Bates
f1ba76b61b
supporting arrays, ranges, and nested hashes in ability conditions
2010-04-17 11:54:27 -07:00
Ryan Bates
f46696348e
allow access to classes when using hash conditions since you'll generally want to narrow it down with a database query
2010-04-16 15:56:07 -07:00
Ryan Bates
8903feee70
removing unauthorized! in favor of authorize! and including more information in AccessDenied exception - closes #40
2010-04-16 14:54:18 -07:00
Ryan Bates
240c281061
renaming ActiveRecordAdditions#can method to accessible_by since it flows better and makes more sense
2010-04-15 23:54:45 -07:00
Ryan Bates
37f482e8d5
default ActiveRecordAdditions#can method action to :read and use 'scoped' if 'where' is not available
2010-04-15 23:18:49 -07:00
Ryan Bates
3c68a911d0
adding can method to Active Record for fetching records matching a specific ability, still needs documentation
2010-04-15 17:04:36 -07:00
Ryan Bates
baeef0b9dd
adding conditions behavior to Ability#can and fetch with Ability#conditions - closes #53
2010-04-15 16:50:47 -07:00
Ryan Bates
23a5888fe0
renaming :class option to :resource for load_and_authorize_resource which now supports a symbol for non models - closes #45
2010-04-15 14:14:22 -07:00
Ryan Bates
f2a1695636
properly handle Admin::AbilitiesController in params[:controller] - closes #46
2010-04-15 13:10:12 -07:00
Ryan Bates
6e1e96c85a
allow additional arguments for be_able_to matcher, this requires Ruby 1.8.7 or higher to use matcher
2010-04-15 12:04:43 -07:00
David Chelimsky
cf49c5b9de
add be_able_to matcher
2010-04-16 02:46:03 +08:00
David Chelimsky
35c4864de4
simplify paths
2010-04-16 02:46:02 +08:00
Ryan Bates
69f7a65914
support additional arguments to can? which get passed to the block - closes #48
2010-04-15 11:21:44 -07:00
Ryan Bates
7d3b4cdbc2
Adding clear_aliased_actions to Ability which removes previously defined actions including defaults
2009-12-30 18:01:40 -08:00
Ryan Bates
f99d506050
Append aliased actions (don't overwrite them) - closes #20
2009-12-30 17:49:49 -08:00
Ryan Bates
ef22de689b
adding custom message argument to unauthorized! method - closes #18
2009-12-15 10:53:05 -08:00
Ryan Bates
021f33c9a0
Adding :class option to load_resource so one can customize which class to use for the model - closes #17
2009-12-14 08:31:49 -08:00
Ryan Bates
e9f01300b6
Don't fetch parent of nested resource if *_id parameter is missing so it works with shallow nested routes - closes #14
2009-12-14 08:18:08 -08:00
Ryan Bates
ffa677b2b0
Don't set resource instance variable if it has been set already - closes #13
2009-12-13 12:32:09 -08:00
Ryan Bates
a75aee751b
Allowing :nested option to accept an array for deep nesting
2009-12-13 12:22:05 -08:00
Ryan Bates
51fa61bbae
refactoring out resource loading/building logic into separate class
2009-12-13 12:11:02 -08:00
Ryan Bates
cd217eb9cf
adding :nested option for load_resource - closes #10
2009-12-13 11:39:02 -08:00
Ryan Bates
94e031bf96
Pass :only and :except options to before filters for load/authorize resource methods.
2009-12-13 11:00:12 -08:00
Ryan Bates
63634b4f5d
Adding :collection and :new options to load_resource method so we can specify behavior of additional actions if needed.
2009-12-13 10:42:10 -08:00
Ryan Bates
a5f98824a0
turning load and authorize resource methods into class methods which set up the before filter so they can accept additional arguments
2009-12-13 10:03:21 -08:00
Ryan Bates
e32c5d0dfb
calling controller's load_resource and authorize_resource from load_and_authorize_resource to maintain backwards compatability, even though it's not the most efficient way
2009-11-26 09:53:16 -08:00
Ryan Bates
da5a5c031f
refactoring out controller logic into separate ResourceAuthorization class - closes #11
2009-11-26 09:29:53 -08:00
Ryan Bates
d4405e6070
adding cannot method to define which abilities cannot be done - closes #7
2009-11-25 10:25:58 -08:00
Ryan Bates
e60365505c
support custom objects (usually symbols) in can definition - closes #8
2009-11-25 09:55:50 -08:00
Ryan Bates
b9227eb971
adding a lot of inline documentation to code for rdocs
2009-11-17 16:56:16 -08:00
Ryan Bates
15a01a579c
fixing behavior of load_and_authorize_resource for namespaced controllers - closes #3
2009-11-17 11:59:59 -08:00
Ryan Bates
766fe86a9f
support arrays being passed to 'can' to specify multiple actions or classes - closes #2
2009-11-17 11:46:27 -08:00
Ryan Bates
0f49b5478f
adding 'cannot?' method which performs opposite check of 'can?' - closes #1
2009-11-17 10:46:16 -08:00
Ryan Bates
1edf583110
BACKWARDS INCOMPATIBLE: use Ability#initialize instead of 'prepare' to set up abilities - closes #4
2009-11-17 10:25:47 -08:00
Ryan Bates
4b6f538663
moving can definition into ability instance instead of class, this removes ugly instance_exec command
2009-11-16 19:59:40 -08:00
Ryan Bates
7b299b50fc
fix resource loading for new action
2009-11-16 19:26:33 -08:00
Ryan Bates
1034c81763
adding a before filter for loading and authorizing a resource
2009-11-16 19:00:10 -08:00
Ryan Bates
44b36ce2fc
adding controller additions with basic behavior.
2009-11-16 17:02:49 -08:00
Ryan Bates
c663effc06
using instance_exec to change scope of can blocks to instance of ability, this is a bit ugly so I may end up using methods instead
2009-11-16 16:24:36 -08:00
Ryan Bates
be1892cca8
adding initial aliases for index, show, new and edit
2009-11-16 15:09:25 -08:00
Ryan Bates
d5f6e0570c
moving class dependency inline in specs
2009-11-16 15:04:57 -08:00
Ryan Bates
0b8b51b4fc
adding aliasing of actions
2009-11-16 14:58:00 -08:00
Ryan Bates
6c89c32059
adding manage action which applies to everything
2009-11-16 14:42:41 -08:00
Ryan Bates
0cfb8c7c41
adding basic ability module
2009-11-16 14:28:52 -08:00