cancannible 1.0.0 → 1.0.1
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 +5 -13
- data/.travis.yml +5 -10
- data/Appraisals +3 -3
- data/Gemfile +0 -2
- data/README.md +8 -3
- data/Rakefile +1 -0
- data/cancannible.gemspec +11 -5
- data/gemfiles/rails_3.gemfile +0 -1
- data/gemfiles/rails_3.gemfile.lock +65 -53
- data/gemfiles/rails_4.gemfile +3 -4
- data/gemfiles/rails_4.gemfile.lock +71 -61
- data/lib/cancannible/grantee.rb +6 -1
- data/lib/cancannible/version.rb +1 -1
- data/lib/generators/cancannible/templates/permission.rb +5 -0
- metadata +104 -30
checksums.yaml
CHANGED
|
@@ -1,15 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
|
|
5
|
-
data.tar.gz: !binary |-
|
|
6
|
-
YzhmMDIxNGY3Y2NkOThiMDEzYzI2ODU5NTA1ZDMyMDA3NWQ1YzdjYQ==
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: c3d98cb08469d65e2ba20fb5d9d88d8d31f8bf8f
|
|
4
|
+
data.tar.gz: e17d80f79eefe6a9ff5253a94534b1f250b89cdd
|
|
7
5
|
SHA512:
|
|
8
|
-
metadata.gz:
|
|
9
|
-
|
|
10
|
-
NDlkYjc0ZDg3NDRkZDIzMjkzMjRhOGQxZTQ4N2JiZDI1MjAxMWE4NzQ3ZmY5
|
|
11
|
-
NGFjZTYxYWM4Yzg0NGNlMWM3NGMzZTgxNjIxZWE5OThjNTAyMGE=
|
|
12
|
-
data.tar.gz: !binary |-
|
|
13
|
-
YzQzYzU4ZDEzZmRjZWZmNTZkYmVkNzExNzQxN2UyODNmNjc4ZWUzNTE2ZTZm
|
|
14
|
-
MzhmNDE2NjQwN2YyMzcwMDg5OTg5MGY1OGNiZjQyNDRmM2EyNjJmOGYxZGUw
|
|
15
|
-
ZjY1MjI2NmNhNTBkM2UyNjg4MTA1MGI3ZWIwNWFmYWE5MTY2NGM=
|
|
6
|
+
metadata.gz: 56c0011cd4ac973a6bf8d0eb9be3b910da3d52f4b27a0a4dd65e9405eafb435ac0b56b278dc88a0b3f07b98d227b2578e606135755d2245cf6b39059f27ff13e
|
|
7
|
+
data.tar.gz: 342a7f8ea40329ab9e66390b504487e22cdee4fd50678b2af92a6407bc7e2439d6d3c70fa4b4f1cea34fb7c8317a3fd7f40332636d426e824b3e9005ff2045d5
|
data/.travis.yml
CHANGED
|
@@ -1,14 +1,9 @@
|
|
|
1
1
|
# These are specific configuration settings required for travis-ci
|
|
2
2
|
language: ruby
|
|
3
|
+
before_script: "bundle exec rake appraisal:install"
|
|
4
|
+
script: "bundle exec rake appraisal"
|
|
3
5
|
rvm:
|
|
4
6
|
- 1.9.3
|
|
5
|
-
- 2.1.
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
- gemfiles/rails_4.gemfile
|
|
9
|
-
matrix:
|
|
10
|
-
exclude:
|
|
11
|
-
- rvm: 1.9.3
|
|
12
|
-
gemfile: gemfiles/rails_4.gemfile
|
|
13
|
-
- rvm: 2.1.5
|
|
14
|
-
gemfile: gemfiles/rails_3.gemfile
|
|
7
|
+
- 2.1.9
|
|
8
|
+
notifications:
|
|
9
|
+
email: false
|
data/Appraisals
CHANGED
data/Gemfile
CHANGED
data/README.md
CHANGED
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
# Cancannible
|
|
2
2
|
[](https://travis-ci.org/evendis/cancannible)
|
|
3
3
|
|
|
4
|
-
Cancannible is a gem that extends CanCan with a range of capabilities:
|
|
4
|
+
Cancannible is a gem that extends [CanCan](https://rubygems.org/gems/cancan) with a range of capabilities:
|
|
5
|
+
|
|
5
6
|
* database-persisted permissions
|
|
6
7
|
* export CanCan methods to the model layer (so that permissions can be applied in model methods, and easily set in a test case)
|
|
7
8
|
* permissions inheritance (so that, for example, a User can inherit permissions from Roles and/or Groups)
|
|
8
9
|
* caching of abilities (so that they don't need to be recalculated on each web request)
|
|
9
10
|
* general-purpose access refinements (so that, for example, CanCan will automatically enforce multi-tenant or other security restrictions)
|
|
10
|
-
* battle-tested with Rails 3.2
|
|
11
|
-
|
|
11
|
+
* battle-tested with Rails 3.2.x and 4.2.x
|
|
12
|
+
|
|
13
|
+
Two demo applications are available (with source) that show cancannible in action:
|
|
14
|
+
|
|
15
|
+
* [cancannibledemo.evendis.com](http://cancannibledemo.evendis.com) uses Rails 3.2.x
|
|
16
|
+
* [cancannibledemo4.evendis.com](http://cancannibledemo4.evendis.com) uses Rails 4.2.x
|
|
12
17
|
|
|
13
18
|
## Limitations
|
|
14
19
|
Cancannible's origin was in a web application that's been in production for over 4 years.
|
data/Rakefile
CHANGED
data/cancannible.gemspec
CHANGED
|
@@ -18,14 +18,20 @@ Gem::Specification.new do |spec|
|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
|
19
19
|
spec.require_paths = ["lib"]
|
|
20
20
|
|
|
21
|
-
spec.add_runtime_dependency "activesupport", ">= 3.2.1"
|
|
22
|
-
spec.add_runtime_dependency "activemodel", ">= 3.2.1"
|
|
21
|
+
spec.add_runtime_dependency "activesupport", ">= 3.2.1", "< 5.0"
|
|
22
|
+
spec.add_runtime_dependency "activemodel", ">= 3.2.1", "< 5.0"
|
|
23
23
|
spec.add_runtime_dependency "cancan", "~> 1.6"
|
|
24
24
|
|
|
25
|
-
spec.add_development_dependency "activerecord", ">= 3.2.1"
|
|
25
|
+
spec.add_development_dependency "activerecord", ">= 3.2.1", "< 5.0"
|
|
26
26
|
spec.add_development_dependency "sqlite3", "~> 1.3"
|
|
27
27
|
spec.add_development_dependency "bundler", "~> 1.6"
|
|
28
28
|
spec.add_development_dependency "rake", "~> 10.0"
|
|
29
|
-
spec.add_development_dependency "rspec", "~> 3.
|
|
30
|
-
spec.add_development_dependency "
|
|
29
|
+
spec.add_development_dependency "rspec", "~> 3.2"
|
|
30
|
+
spec.add_development_dependency "appraisal"
|
|
31
|
+
|
|
32
|
+
# guard versions are pegged to avoid issue with ruby_dep requires Ruby version >= 2.2.5, ~> 2.2.
|
|
33
|
+
spec.add_development_dependency "guard-rspec", "4.6.4"
|
|
34
|
+
spec.add_development_dependency "rb-fsevent", "0.9.6"
|
|
35
|
+
spec.add_development_dependency "rb-inotify", "0.9.5"
|
|
36
|
+
spec.add_development_dependency "pry-coolline", "0.2.5" # avoid readline dependency
|
|
31
37
|
end
|
data/gemfiles/rails_3.gemfile
CHANGED
|
@@ -1,86 +1,92 @@
|
|
|
1
1
|
PATH
|
|
2
|
-
remote:
|
|
2
|
+
remote: ..
|
|
3
3
|
specs:
|
|
4
|
-
cancannible (1.0.
|
|
5
|
-
activemodel (>= 3.2.1)
|
|
6
|
-
activesupport (>= 3.2.1)
|
|
4
|
+
cancannible (1.0.1)
|
|
5
|
+
activemodel (>= 3.2.1, < 5.0)
|
|
6
|
+
activesupport (>= 3.2.1, < 5.0)
|
|
7
7
|
cancan (~> 1.6)
|
|
8
8
|
|
|
9
9
|
GEM
|
|
10
10
|
remote: https://rubygems.org/
|
|
11
11
|
specs:
|
|
12
|
-
activemodel (3.2.
|
|
13
|
-
activesupport (= 3.2.
|
|
12
|
+
activemodel (3.2.22.5)
|
|
13
|
+
activesupport (= 3.2.22.5)
|
|
14
14
|
builder (~> 3.0.0)
|
|
15
|
-
activerecord (3.2.
|
|
16
|
-
activemodel (= 3.2.
|
|
17
|
-
activesupport (= 3.2.
|
|
15
|
+
activerecord (3.2.22.5)
|
|
16
|
+
activemodel (= 3.2.22.5)
|
|
17
|
+
activesupport (= 3.2.22.5)
|
|
18
18
|
arel (~> 3.0.2)
|
|
19
19
|
tzinfo (~> 0.3.29)
|
|
20
|
-
activesupport (3.2.
|
|
20
|
+
activesupport (3.2.22.5)
|
|
21
21
|
i18n (~> 0.6, >= 0.6.4)
|
|
22
22
|
multi_json (~> 1.0)
|
|
23
|
-
appraisal (
|
|
23
|
+
appraisal (2.2.0)
|
|
24
24
|
bundler
|
|
25
25
|
rake
|
|
26
26
|
thor (>= 0.14.0)
|
|
27
27
|
arel (3.0.3)
|
|
28
28
|
builder (3.0.4)
|
|
29
29
|
cancan (1.6.10)
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
30
|
+
coderay (1.1.2)
|
|
31
|
+
concurrent-ruby (1.0.5)
|
|
32
|
+
coolline (0.5.0)
|
|
33
|
+
unicode_utils (~> 1.4)
|
|
34
|
+
diff-lcs (1.3)
|
|
35
|
+
ffi (1.9.21)
|
|
35
36
|
formatador (0.2.5)
|
|
36
|
-
guard (2.
|
|
37
|
+
guard (2.14.2)
|
|
37
38
|
formatador (>= 0.2.4)
|
|
38
|
-
listen (
|
|
39
|
-
lumberjack (
|
|
39
|
+
listen (>= 2.7, < 4.0)
|
|
40
|
+
lumberjack (>= 1.0.12, < 2.0)
|
|
40
41
|
nenv (~> 0.1)
|
|
42
|
+
notiffany (~> 0.0)
|
|
41
43
|
pry (>= 0.9.12)
|
|
44
|
+
shellany (~> 0.0)
|
|
42
45
|
thor (>= 0.18.1)
|
|
43
|
-
guard-compat (1.2.
|
|
44
|
-
guard-rspec (4.
|
|
46
|
+
guard-compat (1.2.1)
|
|
47
|
+
guard-rspec (4.6.4)
|
|
45
48
|
guard (~> 2.1)
|
|
46
49
|
guard-compat (~> 1.1)
|
|
47
50
|
rspec (>= 2.99.0, < 4.0)
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
listen (
|
|
51
|
-
celluloid (>= 0.15.2)
|
|
51
|
+
i18n (0.9.4)
|
|
52
|
+
concurrent-ruby (~> 1.0)
|
|
53
|
+
listen (3.0.5)
|
|
52
54
|
rb-fsevent (>= 0.9.3)
|
|
53
55
|
rb-inotify (>= 0.9)
|
|
54
|
-
lumberjack (1.0.
|
|
55
|
-
method_source (0.
|
|
56
|
-
multi_json (1.
|
|
57
|
-
nenv (0.
|
|
58
|
-
|
|
56
|
+
lumberjack (1.0.12)
|
|
57
|
+
method_source (0.9.0)
|
|
58
|
+
multi_json (1.13.1)
|
|
59
|
+
nenv (0.3.0)
|
|
60
|
+
notiffany (0.1.1)
|
|
61
|
+
nenv (~> 0.1)
|
|
62
|
+
shellany (~> 0.0)
|
|
63
|
+
pry (0.11.3)
|
|
59
64
|
coderay (~> 1.1.0)
|
|
60
|
-
method_source (~> 0.
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
65
|
+
method_source (~> 0.9.0)
|
|
66
|
+
pry-coolline (0.2.5)
|
|
67
|
+
coolline (~> 0.5)
|
|
68
|
+
rake (10.5.0)
|
|
69
|
+
rb-fsevent (0.9.6)
|
|
64
70
|
rb-inotify (0.9.5)
|
|
65
71
|
ffi (>= 0.5.0)
|
|
66
|
-
rspec (3.
|
|
67
|
-
rspec-core (~> 3.
|
|
68
|
-
rspec-expectations (~> 3.
|
|
69
|
-
rspec-mocks (~> 3.
|
|
70
|
-
rspec-core (3.1
|
|
71
|
-
rspec-support (~> 3.
|
|
72
|
-
rspec-expectations (3.
|
|
72
|
+
rspec (3.7.0)
|
|
73
|
+
rspec-core (~> 3.7.0)
|
|
74
|
+
rspec-expectations (~> 3.7.0)
|
|
75
|
+
rspec-mocks (~> 3.7.0)
|
|
76
|
+
rspec-core (3.7.1)
|
|
77
|
+
rspec-support (~> 3.7.0)
|
|
78
|
+
rspec-expectations (3.7.0)
|
|
79
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
80
|
+
rspec-support (~> 3.7.0)
|
|
81
|
+
rspec-mocks (3.7.0)
|
|
73
82
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
74
|
-
rspec-support (~> 3.
|
|
75
|
-
rspec-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
timers (4.0.1)
|
|
82
|
-
hitimes
|
|
83
|
-
tzinfo (0.3.40)
|
|
83
|
+
rspec-support (~> 3.7.0)
|
|
84
|
+
rspec-support (3.7.1)
|
|
85
|
+
shellany (0.0.1)
|
|
86
|
+
sqlite3 (1.3.13)
|
|
87
|
+
thor (0.20.0)
|
|
88
|
+
tzinfo (0.3.53)
|
|
89
|
+
unicode_utils (1.4.0)
|
|
84
90
|
|
|
85
91
|
PLATFORMS
|
|
86
92
|
ruby
|
|
@@ -92,7 +98,13 @@ DEPENDENCIES
|
|
|
92
98
|
appraisal
|
|
93
99
|
bundler (~> 1.6)
|
|
94
100
|
cancannible!
|
|
95
|
-
guard-rspec (
|
|
101
|
+
guard-rspec (= 4.6.4)
|
|
102
|
+
pry-coolline (= 0.2.5)
|
|
96
103
|
rake (~> 10.0)
|
|
97
|
-
|
|
104
|
+
rb-fsevent (= 0.9.6)
|
|
105
|
+
rb-inotify (= 0.9.5)
|
|
106
|
+
rspec (~> 3.2)
|
|
98
107
|
sqlite3 (~> 1.3)
|
|
108
|
+
|
|
109
|
+
BUNDLED WITH
|
|
110
|
+
1.16.0
|
data/gemfiles/rails_4.gemfile
CHANGED
|
@@ -1,103 +1,113 @@
|
|
|
1
1
|
PATH
|
|
2
|
-
remote:
|
|
2
|
+
remote: ..
|
|
3
3
|
specs:
|
|
4
|
-
cancannible (1.0.
|
|
5
|
-
activemodel (>= 3.2.1)
|
|
6
|
-
activesupport (>= 3.2.1)
|
|
4
|
+
cancannible (1.0.1)
|
|
5
|
+
activemodel (>= 3.2.1, < 5.0)
|
|
6
|
+
activesupport (>= 3.2.1, < 5.0)
|
|
7
7
|
cancan (~> 1.6)
|
|
8
8
|
|
|
9
9
|
GEM
|
|
10
10
|
remote: https://rubygems.org/
|
|
11
11
|
specs:
|
|
12
|
-
activemodel (4.2.
|
|
13
|
-
activesupport (= 4.2.
|
|
12
|
+
activemodel (4.2.10)
|
|
13
|
+
activesupport (= 4.2.10)
|
|
14
14
|
builder (~> 3.1)
|
|
15
|
-
activerecord (4.2.
|
|
16
|
-
activemodel (= 4.2.
|
|
17
|
-
activesupport (= 4.2.
|
|
15
|
+
activerecord (4.2.10)
|
|
16
|
+
activemodel (= 4.2.10)
|
|
17
|
+
activesupport (= 4.2.10)
|
|
18
18
|
arel (~> 6.0)
|
|
19
|
-
activesupport (4.2.
|
|
19
|
+
activesupport (4.2.10)
|
|
20
20
|
i18n (~> 0.7)
|
|
21
|
-
json (~> 1.7, >= 1.7.7)
|
|
22
21
|
minitest (~> 5.1)
|
|
23
22
|
thread_safe (~> 0.3, >= 0.3.4)
|
|
24
23
|
tzinfo (~> 1.1)
|
|
25
|
-
appraisal (
|
|
24
|
+
appraisal (2.2.0)
|
|
26
25
|
bundler
|
|
27
26
|
rake
|
|
28
27
|
thor (>= 0.14.0)
|
|
29
|
-
arel (6.0.
|
|
30
|
-
builder (3.2.
|
|
28
|
+
arel (6.0.4)
|
|
29
|
+
builder (3.2.3)
|
|
31
30
|
cancan (1.6.10)
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
31
|
+
coderay (1.1.2)
|
|
32
|
+
concurrent-ruby (1.0.5)
|
|
33
|
+
coolline (0.5.0)
|
|
34
|
+
unicode_utils (~> 1.4)
|
|
35
|
+
diff-lcs (1.3)
|
|
36
|
+
ffi (1.9.21)
|
|
37
37
|
formatador (0.2.5)
|
|
38
|
-
guard (2.
|
|
38
|
+
guard (2.14.2)
|
|
39
39
|
formatador (>= 0.2.4)
|
|
40
|
-
listen (
|
|
41
|
-
lumberjack (
|
|
40
|
+
listen (>= 2.7, < 4.0)
|
|
41
|
+
lumberjack (>= 1.0.12, < 2.0)
|
|
42
42
|
nenv (~> 0.1)
|
|
43
|
+
notiffany (~> 0.0)
|
|
43
44
|
pry (>= 0.9.12)
|
|
45
|
+
shellany (~> 0.0)
|
|
44
46
|
thor (>= 0.18.1)
|
|
45
|
-
guard-compat (1.2.
|
|
46
|
-
guard-rspec (4.
|
|
47
|
+
guard-compat (1.2.1)
|
|
48
|
+
guard-rspec (4.6.4)
|
|
47
49
|
guard (~> 2.1)
|
|
48
50
|
guard-compat (~> 1.1)
|
|
49
51
|
rspec (>= 2.99.0, < 4.0)
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
listen (2.8.4)
|
|
54
|
-
celluloid (>= 0.15.2)
|
|
52
|
+
i18n (0.9.4)
|
|
53
|
+
concurrent-ruby (~> 1.0)
|
|
54
|
+
listen (3.0.5)
|
|
55
55
|
rb-fsevent (>= 0.9.3)
|
|
56
56
|
rb-inotify (>= 0.9)
|
|
57
|
-
lumberjack (1.0.
|
|
58
|
-
method_source (0.
|
|
59
|
-
minitest (5.
|
|
60
|
-
nenv (0.
|
|
61
|
-
|
|
57
|
+
lumberjack (1.0.12)
|
|
58
|
+
method_source (0.9.0)
|
|
59
|
+
minitest (5.11.3)
|
|
60
|
+
nenv (0.3.0)
|
|
61
|
+
notiffany (0.1.1)
|
|
62
|
+
nenv (~> 0.1)
|
|
63
|
+
shellany (~> 0.0)
|
|
64
|
+
pry (0.11.3)
|
|
62
65
|
coderay (~> 1.1.0)
|
|
63
|
-
method_source (~> 0.
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
66
|
+
method_source (~> 0.9.0)
|
|
67
|
+
pry-coolline (0.2.5)
|
|
68
|
+
coolline (~> 0.5)
|
|
69
|
+
rake (10.5.0)
|
|
70
|
+
rb-fsevent (0.9.6)
|
|
67
71
|
rb-inotify (0.9.5)
|
|
68
72
|
ffi (>= 0.5.0)
|
|
69
|
-
rspec (3.
|
|
70
|
-
rspec-core (~> 3.
|
|
71
|
-
rspec-expectations (~> 3.
|
|
72
|
-
rspec-mocks (~> 3.
|
|
73
|
-
rspec-core (3.1
|
|
74
|
-
rspec-support (~> 3.
|
|
75
|
-
rspec-expectations (3.
|
|
73
|
+
rspec (3.7.0)
|
|
74
|
+
rspec-core (~> 3.7.0)
|
|
75
|
+
rspec-expectations (~> 3.7.0)
|
|
76
|
+
rspec-mocks (~> 3.7.0)
|
|
77
|
+
rspec-core (3.7.1)
|
|
78
|
+
rspec-support (~> 3.7.0)
|
|
79
|
+
rspec-expectations (3.7.0)
|
|
80
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
81
|
+
rspec-support (~> 3.7.0)
|
|
82
|
+
rspec-mocks (3.7.0)
|
|
76
83
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
77
|
-
rspec-support (~> 3.
|
|
78
|
-
rspec-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
thread_safe (0.3.4)
|
|
85
|
-
timers (4.0.1)
|
|
86
|
-
hitimes
|
|
87
|
-
tzinfo (1.2.2)
|
|
84
|
+
rspec-support (~> 3.7.0)
|
|
85
|
+
rspec-support (3.7.1)
|
|
86
|
+
shellany (0.0.1)
|
|
87
|
+
sqlite3 (1.3.13)
|
|
88
|
+
thor (0.20.0)
|
|
89
|
+
thread_safe (0.3.6)
|
|
90
|
+
tzinfo (1.2.5)
|
|
88
91
|
thread_safe (~> 0.1)
|
|
92
|
+
unicode_utils (1.4.0)
|
|
89
93
|
|
|
90
94
|
PLATFORMS
|
|
91
95
|
ruby
|
|
92
96
|
|
|
93
97
|
DEPENDENCIES
|
|
94
|
-
activemodel (
|
|
95
|
-
activerecord (
|
|
96
|
-
activesupport (
|
|
98
|
+
activemodel (~> 4.0)
|
|
99
|
+
activerecord (~> 4.0)
|
|
100
|
+
activesupport (~> 4.0)
|
|
97
101
|
appraisal
|
|
98
102
|
bundler (~> 1.6)
|
|
99
103
|
cancannible!
|
|
100
|
-
guard-rspec (
|
|
104
|
+
guard-rspec (= 4.6.4)
|
|
105
|
+
pry-coolline (= 0.2.5)
|
|
101
106
|
rake (~> 10.0)
|
|
102
|
-
|
|
107
|
+
rb-fsevent (= 0.9.6)
|
|
108
|
+
rb-inotify (= 0.9.5)
|
|
109
|
+
rspec (~> 3.2)
|
|
103
110
|
sqlite3 (~> 1.3)
|
|
111
|
+
|
|
112
|
+
BUNDLED WITH
|
|
113
|
+
1.16.0
|
data/lib/cancannible/grantee.rb
CHANGED
|
@@ -106,12 +106,17 @@ module Cancannible
|
|
|
106
106
|
# This module is automatically included into all controllers.
|
|
107
107
|
# It overrides some CanCan ControllerAdditions
|
|
108
108
|
module ControllerAdditions
|
|
109
|
+
# Returns abilities cached in the current_user model.
|
|
110
|
+
# If that fails, returns a default Ability instance
|
|
109
111
|
def current_ability
|
|
110
|
-
current_user.try(:abilities)
|
|
112
|
+
current_user.try(:abilities) || if ability_class = ('::Ability'.constantize rescue nil)
|
|
113
|
+
ability_class.new(current_user)
|
|
114
|
+
end
|
|
111
115
|
end
|
|
112
116
|
end
|
|
113
117
|
end
|
|
114
118
|
|
|
119
|
+
|
|
115
120
|
if defined? ActionController::Base
|
|
116
121
|
ActionController::Base.class_eval do
|
|
117
122
|
include Cancannible::ControllerAdditions
|
data/lib/cancannible/version.rb
CHANGED
|
@@ -3,6 +3,11 @@ class Permission < ActiveRecord::Base
|
|
|
3
3
|
belongs_to :permissible, polymorphic: true
|
|
4
4
|
belongs_to :resource, polymorphic: true
|
|
5
5
|
|
|
6
|
+
# Note: for Rails 3 you may need to declare attr_accessible as follows, depending on your whitelist_attributes setting.
|
|
7
|
+
# A future version of cancannible should make this unnecessary.
|
|
8
|
+
#
|
|
9
|
+
# attr_accessible :asserted, :ability, :resource_id, :resource_type
|
|
10
|
+
|
|
6
11
|
validates_uniqueness_of :ability, scope: [:resource_id, :resource_type, :permissible_id, :permissible_type]
|
|
7
12
|
|
|
8
13
|
end
|
metadata
CHANGED
|
@@ -1,141 +1,215 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: cancannible
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0.
|
|
4
|
+
version: 1.0.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Paul Gallagher
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2018-02-13 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activesupport
|
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
|
16
16
|
requirements:
|
|
17
|
-
- -
|
|
17
|
+
- - ">="
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
19
|
version: 3.2.1
|
|
20
|
+
- - "<"
|
|
21
|
+
- !ruby/object:Gem::Version
|
|
22
|
+
version: '5.0'
|
|
20
23
|
type: :runtime
|
|
21
24
|
prerelease: false
|
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
26
|
requirements:
|
|
24
|
-
- -
|
|
27
|
+
- - ">="
|
|
25
28
|
- !ruby/object:Gem::Version
|
|
26
29
|
version: 3.2.1
|
|
30
|
+
- - "<"
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: '5.0'
|
|
27
33
|
- !ruby/object:Gem::Dependency
|
|
28
34
|
name: activemodel
|
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
|
30
36
|
requirements:
|
|
31
|
-
- -
|
|
37
|
+
- - ">="
|
|
32
38
|
- !ruby/object:Gem::Version
|
|
33
39
|
version: 3.2.1
|
|
40
|
+
- - "<"
|
|
41
|
+
- !ruby/object:Gem::Version
|
|
42
|
+
version: '5.0'
|
|
34
43
|
type: :runtime
|
|
35
44
|
prerelease: false
|
|
36
45
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
46
|
requirements:
|
|
38
|
-
- -
|
|
47
|
+
- - ">="
|
|
39
48
|
- !ruby/object:Gem::Version
|
|
40
49
|
version: 3.2.1
|
|
50
|
+
- - "<"
|
|
51
|
+
- !ruby/object:Gem::Version
|
|
52
|
+
version: '5.0'
|
|
41
53
|
- !ruby/object:Gem::Dependency
|
|
42
54
|
name: cancan
|
|
43
55
|
requirement: !ruby/object:Gem::Requirement
|
|
44
56
|
requirements:
|
|
45
|
-
- - ~>
|
|
57
|
+
- - "~>"
|
|
46
58
|
- !ruby/object:Gem::Version
|
|
47
59
|
version: '1.6'
|
|
48
60
|
type: :runtime
|
|
49
61
|
prerelease: false
|
|
50
62
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
63
|
requirements:
|
|
52
|
-
- - ~>
|
|
64
|
+
- - "~>"
|
|
53
65
|
- !ruby/object:Gem::Version
|
|
54
66
|
version: '1.6'
|
|
55
67
|
- !ruby/object:Gem::Dependency
|
|
56
68
|
name: activerecord
|
|
57
69
|
requirement: !ruby/object:Gem::Requirement
|
|
58
70
|
requirements:
|
|
59
|
-
- -
|
|
71
|
+
- - ">="
|
|
60
72
|
- !ruby/object:Gem::Version
|
|
61
73
|
version: 3.2.1
|
|
74
|
+
- - "<"
|
|
75
|
+
- !ruby/object:Gem::Version
|
|
76
|
+
version: '5.0'
|
|
62
77
|
type: :development
|
|
63
78
|
prerelease: false
|
|
64
79
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
80
|
requirements:
|
|
66
|
-
- -
|
|
81
|
+
- - ">="
|
|
67
82
|
- !ruby/object:Gem::Version
|
|
68
83
|
version: 3.2.1
|
|
84
|
+
- - "<"
|
|
85
|
+
- !ruby/object:Gem::Version
|
|
86
|
+
version: '5.0'
|
|
69
87
|
- !ruby/object:Gem::Dependency
|
|
70
88
|
name: sqlite3
|
|
71
89
|
requirement: !ruby/object:Gem::Requirement
|
|
72
90
|
requirements:
|
|
73
|
-
- - ~>
|
|
91
|
+
- - "~>"
|
|
74
92
|
- !ruby/object:Gem::Version
|
|
75
93
|
version: '1.3'
|
|
76
94
|
type: :development
|
|
77
95
|
prerelease: false
|
|
78
96
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
97
|
requirements:
|
|
80
|
-
- - ~>
|
|
98
|
+
- - "~>"
|
|
81
99
|
- !ruby/object:Gem::Version
|
|
82
100
|
version: '1.3'
|
|
83
101
|
- !ruby/object:Gem::Dependency
|
|
84
102
|
name: bundler
|
|
85
103
|
requirement: !ruby/object:Gem::Requirement
|
|
86
104
|
requirements:
|
|
87
|
-
- - ~>
|
|
105
|
+
- - "~>"
|
|
88
106
|
- !ruby/object:Gem::Version
|
|
89
107
|
version: '1.6'
|
|
90
108
|
type: :development
|
|
91
109
|
prerelease: false
|
|
92
110
|
version_requirements: !ruby/object:Gem::Requirement
|
|
93
111
|
requirements:
|
|
94
|
-
- - ~>
|
|
112
|
+
- - "~>"
|
|
95
113
|
- !ruby/object:Gem::Version
|
|
96
114
|
version: '1.6'
|
|
97
115
|
- !ruby/object:Gem::Dependency
|
|
98
116
|
name: rake
|
|
99
117
|
requirement: !ruby/object:Gem::Requirement
|
|
100
118
|
requirements:
|
|
101
|
-
- - ~>
|
|
119
|
+
- - "~>"
|
|
102
120
|
- !ruby/object:Gem::Version
|
|
103
121
|
version: '10.0'
|
|
104
122
|
type: :development
|
|
105
123
|
prerelease: false
|
|
106
124
|
version_requirements: !ruby/object:Gem::Requirement
|
|
107
125
|
requirements:
|
|
108
|
-
- - ~>
|
|
126
|
+
- - "~>"
|
|
109
127
|
- !ruby/object:Gem::Version
|
|
110
128
|
version: '10.0'
|
|
111
129
|
- !ruby/object:Gem::Dependency
|
|
112
130
|
name: rspec
|
|
113
131
|
requirement: !ruby/object:Gem::Requirement
|
|
114
132
|
requirements:
|
|
115
|
-
- - ~>
|
|
133
|
+
- - "~>"
|
|
116
134
|
- !ruby/object:Gem::Version
|
|
117
|
-
version: '3.
|
|
135
|
+
version: '3.2'
|
|
118
136
|
type: :development
|
|
119
137
|
prerelease: false
|
|
120
138
|
version_requirements: !ruby/object:Gem::Requirement
|
|
121
139
|
requirements:
|
|
122
|
-
- - ~>
|
|
140
|
+
- - "~>"
|
|
123
141
|
- !ruby/object:Gem::Version
|
|
124
|
-
version: '3.
|
|
142
|
+
version: '3.2'
|
|
143
|
+
- !ruby/object:Gem::Dependency
|
|
144
|
+
name: appraisal
|
|
145
|
+
requirement: !ruby/object:Gem::Requirement
|
|
146
|
+
requirements:
|
|
147
|
+
- - ">="
|
|
148
|
+
- !ruby/object:Gem::Version
|
|
149
|
+
version: '0'
|
|
150
|
+
type: :development
|
|
151
|
+
prerelease: false
|
|
152
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
153
|
+
requirements:
|
|
154
|
+
- - ">="
|
|
155
|
+
- !ruby/object:Gem::Version
|
|
156
|
+
version: '0'
|
|
125
157
|
- !ruby/object:Gem::Dependency
|
|
126
158
|
name: guard-rspec
|
|
127
159
|
requirement: !ruby/object:Gem::Requirement
|
|
128
160
|
requirements:
|
|
129
|
-
- -
|
|
161
|
+
- - '='
|
|
162
|
+
- !ruby/object:Gem::Version
|
|
163
|
+
version: 4.6.4
|
|
164
|
+
type: :development
|
|
165
|
+
prerelease: false
|
|
166
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
167
|
+
requirements:
|
|
168
|
+
- - '='
|
|
169
|
+
- !ruby/object:Gem::Version
|
|
170
|
+
version: 4.6.4
|
|
171
|
+
- !ruby/object:Gem::Dependency
|
|
172
|
+
name: rb-fsevent
|
|
173
|
+
requirement: !ruby/object:Gem::Requirement
|
|
174
|
+
requirements:
|
|
175
|
+
- - '='
|
|
176
|
+
- !ruby/object:Gem::Version
|
|
177
|
+
version: 0.9.6
|
|
178
|
+
type: :development
|
|
179
|
+
prerelease: false
|
|
180
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
181
|
+
requirements:
|
|
182
|
+
- - '='
|
|
183
|
+
- !ruby/object:Gem::Version
|
|
184
|
+
version: 0.9.6
|
|
185
|
+
- !ruby/object:Gem::Dependency
|
|
186
|
+
name: rb-inotify
|
|
187
|
+
requirement: !ruby/object:Gem::Requirement
|
|
188
|
+
requirements:
|
|
189
|
+
- - '='
|
|
190
|
+
- !ruby/object:Gem::Version
|
|
191
|
+
version: 0.9.5
|
|
192
|
+
type: :development
|
|
193
|
+
prerelease: false
|
|
194
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
195
|
+
requirements:
|
|
196
|
+
- - '='
|
|
197
|
+
- !ruby/object:Gem::Version
|
|
198
|
+
version: 0.9.5
|
|
199
|
+
- !ruby/object:Gem::Dependency
|
|
200
|
+
name: pry-coolline
|
|
201
|
+
requirement: !ruby/object:Gem::Requirement
|
|
202
|
+
requirements:
|
|
203
|
+
- - '='
|
|
130
204
|
- !ruby/object:Gem::Version
|
|
131
|
-
version:
|
|
205
|
+
version: 0.2.5
|
|
132
206
|
type: :development
|
|
133
207
|
prerelease: false
|
|
134
208
|
version_requirements: !ruby/object:Gem::Requirement
|
|
135
209
|
requirements:
|
|
136
|
-
- -
|
|
210
|
+
- - '='
|
|
137
211
|
- !ruby/object:Gem::Version
|
|
138
|
-
version:
|
|
212
|
+
version: 0.2.5
|
|
139
213
|
description: Extends CanCan with dynamic, inheritable permissions stored in a database,
|
|
140
214
|
with caching and multi-tenant refinements
|
|
141
215
|
email:
|
|
@@ -144,9 +218,9 @@ executables: []
|
|
|
144
218
|
extensions: []
|
|
145
219
|
extra_rdoc_files: []
|
|
146
220
|
files:
|
|
147
|
-
- .gitignore
|
|
148
|
-
- .rspec
|
|
149
|
-
- .travis.yml
|
|
221
|
+
- ".gitignore"
|
|
222
|
+
- ".rspec"
|
|
223
|
+
- ".travis.yml"
|
|
150
224
|
- Appraisals
|
|
151
225
|
- Gemfile
|
|
152
226
|
- Guardfile
|
|
@@ -187,17 +261,17 @@ require_paths:
|
|
|
187
261
|
- lib
|
|
188
262
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
189
263
|
requirements:
|
|
190
|
-
- -
|
|
264
|
+
- - ">="
|
|
191
265
|
- !ruby/object:Gem::Version
|
|
192
266
|
version: '0'
|
|
193
267
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
194
268
|
requirements:
|
|
195
|
-
- -
|
|
269
|
+
- - ">="
|
|
196
270
|
- !ruby/object:Gem::Version
|
|
197
271
|
version: '0'
|
|
198
272
|
requirements: []
|
|
199
273
|
rubyforge_project:
|
|
200
|
-
rubygems_version: 2.
|
|
274
|
+
rubygems_version: 2.6.12
|
|
201
275
|
signing_key:
|
|
202
276
|
specification_version: 4
|
|
203
277
|
summary: Dynamic, configurable permissions for CanCan
|