sevn 0.0.4 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG +2 -0
- data/lib/sevn/ability.rb +9 -0
- data/lib/sevn/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 46b95be0b2c9ccf2e306de969982bc3e5cc66abd
|
4
|
+
data.tar.gz: a348be59a8327b9d0b41ce31021fd6672208daaf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 17b0f6b99014037c0a9b975fe7a0e8dd3b24e226ffafccfb626d5755f1d7db7f126d2cb0bcabd335f53ade6ea1203397779a33c93700c13fefa8d9f1c115d710
|
7
|
+
data.tar.gz: 7b56be6994f9ffc8512a7013f1ca93c6cca23ec24ccd1f38a622dc95e43c57d1794988d006267bf8784a9169846e77c80bc5c9ae883131de91834647ca213348
|
data/CHANGELOG
CHANGED
data/lib/sevn/ability.rb
CHANGED
@@ -105,6 +105,10 @@ module Sevn
|
|
105
105
|
end
|
106
106
|
|
107
107
|
def action_allowed?(object, action, subjects, options)
|
108
|
+
if collection_proxy_defined? && subjects.class == ActiveRecord::Associations::CollectionProxy
|
109
|
+
subjects = subjects.to_a
|
110
|
+
end
|
111
|
+
|
108
112
|
if subjects.kind_of?(Array)
|
109
113
|
# if subjects is an Array, let's group them by class
|
110
114
|
# check if action is allowed for the whole class or to all the subjects of that class
|
@@ -164,5 +168,10 @@ module Sevn
|
|
164
168
|
tr("-", "_").
|
165
169
|
downcase
|
166
170
|
end
|
171
|
+
|
172
|
+
def collection_proxy_defined?
|
173
|
+
defined?(ActiveRecord::Associations::CollectionProxy) == 'constant' &&
|
174
|
+
ActiveRecord::Associations::CollectionProxy.class == Class
|
175
|
+
end
|
167
176
|
end
|
168
177
|
end
|
data/lib/sevn/version.rb
CHANGED