monarchy 2.0.0.pre.beta.1 → 2.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9c68ab46ff143acf0dbf4724039a5eda03caad6a
4
- data.tar.gz: 7bffa186ec4eddd5c42e08d9217197329f223c77
3
+ metadata.gz: 668e988a05baee787f7ede9df0c24c0625559a86
4
+ data.tar.gz: 3e24077bf0b110a0db6afb69a6c75b013e24e67a
5
5
  SHA512:
6
- metadata.gz: 2e2f56e8b44dc277700951c9fda570907ea47b1ba98e6050d3e2a256f2f42b5620b8e158087292f1c797255f0fda311fa2f43ccabf3eacb63ec635d9349e4dba
7
- data.tar.gz: 406793fd9ad57d2c65872594840a7761c5592801ab536cd006b9fde3936b914177b61e78c1809c09fc9e12cb6f2d9ec80bf9d12de11ece9b92ba3a644f349f90
6
+ metadata.gz: 32d61f36e24cac3b72e944d63aa2bf2758872f59adaaeaa8b3736308d3cfd543ad502c6f0c57bcb51ac8873068618bd964b651f1144065f0444d53d5aa5ccb0c
7
+ data.tar.gz: e26d3ef36d35f622889578eb1f6afebc0dc9b3b1cc3d2987090f9555e87929e50670f8c7d600959cb74f907e90bc329b6d7ecf983a53ae08636bfe021077ea02
@@ -0,0 +1 @@
1
+ future-release=2.0.4
data/CHANGELOG.md CHANGED
@@ -1,11 +1,155 @@
1
- ### 2.0.x LTS
2
- - Docs in files
3
- - Improve `.in` scope in AAR
4
- - Change `.in` scope in AAH
5
- - Now it takes `hierarchy` and returns array of `hierarchies`
6
- - Update gems
7
- - Add dynamic `hierarchy` class
8
- - Add `users` relationship to AAH
9
- - Add a validator for `hierarchy`
10
- - Add new exceptions for `hierarchy`
11
- - Fix scopes in `hierarchy`
1
+ # Change Log
2
+
3
+ ## [2.0.4](https://github.com/Exelord/Monarchy/tree/2.0.4) (2016-11-06)
4
+ [Full Changelog](https://github.com/Exelord/Monarchy/compare/v2.0.0-beta.1...2.0.4)
5
+
6
+ **Closed issues:**
7
+
8
+ - Improve performance [\#59](https://github.com/Exelord/Monarchy/issues/59)
9
+ - Default role - is it still needed? [\#48](https://github.com/Exelord/Monarchy/issues/48)
10
+ - Complete Readme and WIKI [\#5](https://github.com/Exelord/Monarchy/issues/5)
11
+
12
+ **Merged pull requests:**
13
+
14
+ - Improve AAH performance [\#60](https://github.com/Exelord/Monarchy/pull/60) ([Exelord](https://github.com/Exelord))
15
+ - Upgrade to Rails 5 [\#55](https://github.com/Exelord/Monarchy/pull/55) ([Exelord](https://github.com/Exelord))
16
+ - Update packages [\#54](https://github.com/Exelord/Monarchy/pull/54) ([Exelord](https://github.com/Exelord))
17
+ - Documentation, improvments and fixes [\#52](https://github.com/Exelord/Monarchy/pull/52) ([Exelord](https://github.com/Exelord))
18
+
19
+ ## [v2.0.0-beta.1](https://github.com/Exelord/Monarchy/tree/v2.0.0-beta.1) (2016-09-10)
20
+ [Full Changelog](https://github.com/Exelord/Monarchy/compare/v1.2.0...v2.0.0-beta.1)
21
+
22
+ **Fixed bugs:**
23
+
24
+ - Quick fix for v2.0 [\#51](https://github.com/Exelord/Monarchy/pull/51) ([Exelord](https://github.com/Exelord))
25
+
26
+ **Merged pull requests:**
27
+
28
+ - Remove default role granting [\#50](https://github.com/Exelord/Monarchy/pull/50) ([Exelord](https://github.com/Exelord))
29
+
30
+ ## [v1.2.0](https://github.com/Exelord/Monarchy/tree/v1.2.0) (2016-08-26)
31
+ [Full Changelog](https://github.com/Exelord/Monarchy/compare/v1.1.5...v1.2.0)
32
+
33
+ **Fixed bugs:**
34
+
35
+ - Probably missing tests [\#20](https://github.com/Exelord/Monarchy/issues/20)
36
+ - Rise errors where incorrect resource was assigned [\#19](https://github.com/Exelord/Monarchy/issues/19)
37
+
38
+ **Merged pull requests:**
39
+
40
+ - Feature exceptions [\#42](https://github.com/Exelord/Monarchy/pull/42) ([Exelord](https://github.com/Exelord))
41
+
42
+ ## [v1.1.5](https://github.com/Exelord/Monarchy/tree/v1.1.5) (2016-08-19)
43
+ [Full Changelog](https://github.com/Exelord/Monarchy/compare/v1.1.4...v1.1.5)
44
+
45
+ **Fixed bugs:**
46
+
47
+ - Fix for assign parent [\#47](https://github.com/Exelord/Monarchy/pull/47) ([Exelord](https://github.com/Exelord))
48
+
49
+ ## [v1.1.4](https://github.com/Exelord/Monarchy/tree/v1.1.4) (2016-08-16)
50
+ [Full Changelog](https://github.com/Exelord/Monarchy/compare/v1.1.3...v1.1.4)
51
+
52
+ **Fixed bugs:**
53
+
54
+ - Move tasks to Monarchy methods [\#46](https://github.com/Exelord/Monarchy/pull/46) ([Exelord](https://github.com/Exelord))
55
+
56
+ ## [v1.1.3](https://github.com/Exelord/Monarchy/tree/v1.1.3) (2016-08-15)
57
+ [Full Changelog](https://github.com/Exelord/Monarchy/compare/v.1.1.1...v1.1.3)
58
+
59
+ **Merged pull requests:**
60
+
61
+ - Fix assign parent [\#45](https://github.com/Exelord/Monarchy/pull/45) ([Exelord](https://github.com/Exelord))
62
+
63
+ ## [v.1.1.1](https://github.com/Exelord/Monarchy/tree/v.1.1.1) (2016-08-15)
64
+ [Full Changelog](https://github.com/Exelord/Monarchy/compare/v1.0.0...v.1.1.1)
65
+
66
+ **Fixed bugs:**
67
+
68
+ - Fix revoking role [\#44](https://github.com/Exelord/Monarchy/pull/44) ([Exelord](https://github.com/Exelord))
69
+ - Fix rake tasks [\#43](https://github.com/Exelord/Monarchy/pull/43) ([Exelord](https://github.com/Exelord))
70
+
71
+ **Closed issues:**
72
+
73
+ - Rise warnings [\#3](https://github.com/Exelord/Monarchy/issues/3)
74
+
75
+ **Merged pull requests:**
76
+
77
+ - Feature better restricted roles [\#41](https://github.com/Exelord/Monarchy/pull/41) ([Exelord](https://github.com/Exelord))
78
+ - Update gems [\#40](https://github.com/Exelord/Monarchy/pull/40) ([Exelord](https://github.com/Exelord))
79
+
80
+ ## [v1.0.0](https://github.com/Exelord/Monarchy/tree/v1.0.0) (2016-08-05)
81
+ [Full Changelog](https://github.com/Exelord/Monarchy/compare/v0.3.1...v1.0.0)
82
+
83
+ **Fixed bugs:**
84
+
85
+ - Teams [\#36](https://github.com/Exelord/Monarchy/pull/36) ([Exelord](https://github.com/Exelord))
86
+
87
+ **Closed issues:**
88
+
89
+ - Dynamic relationships [\#32](https://github.com/Exelord/Monarchy/issues/32)
90
+ - Extend `parent\_as` method [\#17](https://github.com/Exelord/Monarchy/issues/17)
91
+ - Custom Up and down roles inheritence [\#15](https://github.com/Exelord/Monarchy/issues/15)
92
+
93
+ **Merged pull requests:**
94
+
95
+ - Revert "Update gems - Rails 5" [\#39](https://github.com/Exelord/Monarchy/pull/39) ([Exelord](https://github.com/Exelord))
96
+ - Feature dynamic classes [\#38](https://github.com/Exelord/Monarchy/pull/38) ([Exelord](https://github.com/Exelord))
97
+ - Update gems - Rails 5 [\#37](https://github.com/Exelord/Monarchy/pull/37) ([Exelord](https://github.com/Exelord))
98
+
99
+ ## [v0.3.1](https://github.com/Exelord/Monarchy/tree/v0.3.1) (2016-05-29)
100
+ [Full Changelog](https://github.com/Exelord/Monarchy/compare/v0.2.0...v0.3.1)
101
+
102
+ **Fixed bugs:**
103
+
104
+ - Rework on roles\_for [\#28](https://github.com/Exelord/Monarchy/issues/28)
105
+ - Rspec warnings [\#25](https://github.com/Exelord/Monarchy/issues/25)
106
+ - Internal hierarchy model [\#4](https://github.com/Exelord/Monarchy/issues/4)
107
+ - Fix closure tree [\#30](https://github.com/Exelord/Monarchy/pull/30) ([PoslinskiNet](https://github.com/PoslinskiNet))
108
+ - Fix directory name [\#26](https://github.com/Exelord/Monarchy/pull/26) ([Exelord](https://github.com/Exelord))
109
+
110
+ **Closed issues:**
111
+
112
+ - Better revoking roles [\#18](https://github.com/Exelord/Monarchy/issues/18)
113
+
114
+ **Merged pull requests:**
115
+
116
+ - Add gitter channel [\#35](https://github.com/Exelord/Monarchy/pull/35) ([Exelord](https://github.com/Exelord))
117
+ - DEP\#27 Refactored specs and fixes [\#31](https://github.com/Exelord/Monarchy/pull/31) ([Exelord](https://github.com/Exelord))
118
+ - Another big bang theory [\#27](https://github.com/Exelord/Monarchy/pull/27) ([Exelord](https://github.com/Exelord))
119
+
120
+ ## [v0.2.0](https://github.com/Exelord/Monarchy/tree/v0.2.0) (2016-04-20)
121
+ [Full Changelog](https://github.com/Exelord/Monarchy/compare/v0.1-alpha...v0.2.0)
122
+
123
+ **Fixed bugs:**
124
+
125
+ - Rename Hierarchy\_spec.rb to hierarchy\_spec.rb [\#23](https://github.com/Exelord/Monarchy/pull/23) ([Exelord](https://github.com/Exelord))
126
+
127
+ **Closed issues:**
128
+
129
+ - Renaming gem :D [\#21](https://github.com/Exelord/Monarchy/issues/21)
130
+ - Scope modules into Treelify [\#13](https://github.com/Exelord/Monarchy/issues/13)
131
+ - When deleting Role delete also members role relation [\#1](https://github.com/Exelord/Monarchy/issues/1)
132
+
133
+ **Merged pull requests:**
134
+
135
+ - Feature gem renaming [\#24](https://github.com/Exelord/Monarchy/pull/24) ([Exelord](https://github.com/Exelord))
136
+ - Feature scoped modules [\#22](https://github.com/Exelord/Monarchy/pull/22) ([Exelord](https://github.com/Exelord))
137
+
138
+ ## [v0.1-alpha](https://github.com/Exelord/Monarchy/tree/v0.1-alpha) (2016-04-12)
139
+ **Closed issues:**
140
+
141
+ - Revoke user from resource [\#2](https://github.com/Exelord/Monarchy/issues/2)
142
+
143
+ **Merged pull requests:**
144
+
145
+ - Dependent destroy on MembersRole [\#14](https://github.com/Exelord/Monarchy/pull/14) ([Exelord](https://github.com/Exelord))
146
+ - User revoke [\#12](https://github.com/Exelord/Monarchy/pull/12) ([Exelord](https://github.com/Exelord))
147
+ - Update README.md [\#11](https://github.com/Exelord/Monarchy/pull/11) ([Exelord](https://github.com/Exelord))
148
+ - Resource documentation [\#10](https://github.com/Exelord/Monarchy/pull/10) ([Exelord](https://github.com/Exelord))
149
+ - Parent as option [\#9](https://github.com/Exelord/Monarchy/pull/9) ([Exelord](https://github.com/Exelord))
150
+ - Bump ruby to 2.3.0 [\#8](https://github.com/Exelord/Monarchy/pull/8) ([Exelord](https://github.com/Exelord))
151
+ - Add missing tests [\#7](https://github.com/Exelord/Monarchy/pull/7) ([Exelord](https://github.com/Exelord))
152
+
153
+
154
+
155
+ \* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
data/Gemfile CHANGED
@@ -25,7 +25,8 @@ group :development, :test do
25
25
  gem 'ffaker', '2.2.0'
26
26
  gem 'database_cleaner', '1.5.3'
27
27
  gem 'tqdm', '0.3.0'
28
+ gem 'rails', '5.0.0.1'
28
29
  end
29
30
 
30
- gem 'simplecov', '0.12.0', require: false, group: :test
31
- gem 'codeclimate-test-reporter', group: :test, require: nil
31
+ gem 'simplecov', '0.12.0', group: :test
32
+ gem 'codeclimate-test-reporter', '1.0.0', group: :test
data/Gemfile.lock CHANGED
@@ -1,61 +1,62 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- monarchy (2.0.0.pre.beta.1)
4
+ monarchy (2.0.4)
5
5
  active_record_union (= 1.2.0)
6
+ activerecord (>= 4.2.7.1)
6
7
  closure_tree (= 6.2.0)
7
8
  configurations (= 2.2.1)
8
- rails (~> 4.2, >= 4.2.7.1)
9
9
  tqdm (= 0.3.0)
10
10
 
11
11
  GEM
12
12
  remote: https://rubygems.org/
13
13
  specs:
14
- actionmailer (4.2.7.1)
15
- actionpack (= 4.2.7.1)
16
- actionview (= 4.2.7.1)
17
- activejob (= 4.2.7.1)
14
+ actioncable (5.0.0.1)
15
+ actionpack (= 5.0.0.1)
16
+ nio4r (~> 1.2)
17
+ websocket-driver (~> 0.6.1)
18
+ actionmailer (5.0.0.1)
19
+ actionpack (= 5.0.0.1)
20
+ actionview (= 5.0.0.1)
21
+ activejob (= 5.0.0.1)
18
22
  mail (~> 2.5, >= 2.5.4)
19
- rails-dom-testing (~> 1.0, >= 1.0.5)
20
- actionpack (4.2.7.1)
21
- actionview (= 4.2.7.1)
22
- activesupport (= 4.2.7.1)
23
- rack (~> 1.6)
24
- rack-test (~> 0.6.2)
25
- rails-dom-testing (~> 1.0, >= 1.0.5)
23
+ rails-dom-testing (~> 2.0)
24
+ actionpack (5.0.0.1)
25
+ actionview (= 5.0.0.1)
26
+ activesupport (= 5.0.0.1)
27
+ rack (~> 2.0)
28
+ rack-test (~> 0.6.3)
29
+ rails-dom-testing (~> 2.0)
26
30
  rails-html-sanitizer (~> 1.0, >= 1.0.2)
27
- actionview (4.2.7.1)
28
- activesupport (= 4.2.7.1)
31
+ actionview (5.0.0.1)
32
+ activesupport (= 5.0.0.1)
29
33
  builder (~> 3.1)
30
34
  erubis (~> 2.7.0)
31
- rails-dom-testing (~> 1.0, >= 1.0.5)
35
+ rails-dom-testing (~> 2.0)
32
36
  rails-html-sanitizer (~> 1.0, >= 1.0.2)
33
37
  active_record_union (1.2.0)
34
38
  activerecord (>= 4.0)
35
- activejob (4.2.7.1)
36
- activesupport (= 4.2.7.1)
37
- globalid (>= 0.3.0)
38
- activemodel (4.2.7.1)
39
- activesupport (= 4.2.7.1)
40
- builder (~> 3.1)
41
- activerecord (4.2.7.1)
42
- activemodel (= 4.2.7.1)
43
- activesupport (= 4.2.7.1)
44
- arel (~> 6.0)
45
- activesupport (4.2.7.1)
39
+ activejob (5.0.0.1)
40
+ activesupport (= 5.0.0.1)
41
+ globalid (>= 0.3.6)
42
+ activemodel (5.0.0.1)
43
+ activesupport (= 5.0.0.1)
44
+ activerecord (5.0.0.1)
45
+ activemodel (= 5.0.0.1)
46
+ activesupport (= 5.0.0.1)
47
+ arel (~> 7.0)
48
+ activesupport (5.0.0.1)
49
+ concurrent-ruby (~> 1.0, >= 1.0.2)
46
50
  i18n (~> 0.7)
47
- json (~> 1.7, >= 1.7.7)
48
51
  minitest (~> 5.1)
49
- thread_safe (~> 0.3, >= 0.3.4)
50
52
  tzinfo (~> 1.1)
51
- arel (6.0.3)
53
+ arel (7.1.4)
52
54
  ast (2.3.0)
53
55
  builder (3.2.2)
54
56
  closure_tree (6.2.0)
55
57
  activerecord (>= 4.1.0)
56
58
  with_advisory_lock (>= 3.0.0)
57
- codeclimate-test-reporter (0.6.0)
58
- simplecov (>= 0.7.1, < 1.0.0)
59
+ codeclimate-test-reporter (1.0.0)
59
60
  coderay (1.1.1)
60
61
  concurrent-ruby (1.0.2)
61
62
  configurations (2.2.1)
@@ -72,7 +73,7 @@ GEM
72
73
  globalid (0.3.7)
73
74
  activesupport (>= 4.1.0)
74
75
  i18n (0.7.0)
75
- json (1.8.3)
76
+ json (2.0.2)
76
77
  loofah (2.0.3)
77
78
  nokogiri (>= 1.5.9)
78
79
  mail (2.6.4)
@@ -83,6 +84,7 @@ GEM
83
84
  mime-types-data (3.2016.0521)
84
85
  mini_portile2 (2.1.0)
85
86
  minitest (5.9.1)
87
+ nio4r (1.2.1)
86
88
  nokogiri (1.6.8.1)
87
89
  mini_portile2 (~> 2.1.0)
88
90
  parser (2.3.1.4)
@@ -94,31 +96,30 @@ GEM
94
96
  slop (~> 3.4)
95
97
  pry-rails (0.3.4)
96
98
  pry (>= 0.9.10)
97
- rack (1.6.4)
99
+ rack (2.0.1)
98
100
  rack-test (0.6.3)
99
101
  rack (>= 1.0)
100
- rails (4.2.7.1)
101
- actionmailer (= 4.2.7.1)
102
- actionpack (= 4.2.7.1)
103
- actionview (= 4.2.7.1)
104
- activejob (= 4.2.7.1)
105
- activemodel (= 4.2.7.1)
106
- activerecord (= 4.2.7.1)
107
- activesupport (= 4.2.7.1)
102
+ rails (5.0.0.1)
103
+ actioncable (= 5.0.0.1)
104
+ actionmailer (= 5.0.0.1)
105
+ actionpack (= 5.0.0.1)
106
+ actionview (= 5.0.0.1)
107
+ activejob (= 5.0.0.1)
108
+ activemodel (= 5.0.0.1)
109
+ activerecord (= 5.0.0.1)
110
+ activesupport (= 5.0.0.1)
108
111
  bundler (>= 1.3.0, < 2.0)
109
- railties (= 4.2.7.1)
110
- sprockets-rails
111
- rails-deprecated_sanitizer (1.0.3)
112
- activesupport (>= 4.2.0.alpha)
113
- rails-dom-testing (1.0.7)
114
- activesupport (>= 4.2.0.beta, < 5.0)
112
+ railties (= 5.0.0.1)
113
+ sprockets-rails (>= 2.0.0)
114
+ rails-dom-testing (2.0.1)
115
+ activesupport (>= 4.2.0, < 6.0)
115
116
  nokogiri (~> 1.6.0)
116
- rails-deprecated_sanitizer (>= 1.0.1)
117
117
  rails-html-sanitizer (1.0.3)
118
118
  loofah (~> 2.0)
119
- railties (4.2.7.1)
120
- actionpack (= 4.2.7.1)
121
- activesupport (= 4.2.7.1)
119
+ railties (5.0.0.1)
120
+ actionpack (= 5.0.0.1)
121
+ activesupport (= 5.0.0.1)
122
+ method_source
122
123
  rake (>= 0.8.7)
123
124
  thor (>= 0.18.1, < 2.0)
124
125
  rainbow (2.1.0)
@@ -173,6 +174,9 @@ GEM
173
174
  tzinfo (1.2.2)
174
175
  thread_safe (~> 0.1)
175
176
  unicode-display_width (1.1.1)
177
+ websocket-driver (0.6.4)
178
+ websocket-extensions (>= 0.1.0)
179
+ websocket-extensions (0.1.2)
176
180
  with_advisory_lock (3.0.0)
177
181
  activerecord (>= 3.2)
178
182
  thread_safe
@@ -182,12 +186,13 @@ PLATFORMS
182
186
 
183
187
  DEPENDENCIES
184
188
  bundler (~> 1.12)
185
- codeclimate-test-reporter
189
+ codeclimate-test-reporter (= 1.0.0)
186
190
  database_cleaner (= 1.5.3)
187
191
  factory_girl_rails (= 4.7.0)
188
192
  ffaker (= 2.2.0)
189
193
  monarchy!
190
194
  pry-rails (= 0.3.4)
195
+ rails (= 5.0.0.1)
191
196
  rake (~> 11.3)
192
197
  rspec (= 3.5.0)
193
198
  rspec-rails (= 3.5.2)
data/README.md CHANGED
@@ -1,14 +1,60 @@
1
- [![Build Status](https://travis-ci.org/Exelord/Monarchy.svg?branch=master)](https://travis-ci.org/Exelord/Monarchy)
2
- [![Dependency Status](https://gemnasium.com/badges/github.com/Exelord/Monarchy.svg)](https://gemnasium.com/github.com/Exelord/Monarchy)
3
- [![Gitter](https://badges.gitter.im/Exelord/Monarchy.svg)](https://gitter.im/Exelord/Monarchy?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
4
- [![Code Climate](https://codeclimate.com/github/Exelord/Monarchy/badges/gpa.svg)](https://codeclimate.com/github/Exelord/Monarchy)
5
-
6
1
  <p align="center">
7
- <img align="center" src="monarchy.png?raw=true" alt="Sublime's custom image"/>
2
+ <img src="monarchy.png?raw=true" alt="Sublime's custom image"/>
3
+ <a href="https://travis-ci.org/Exelord/Monarchy">
4
+ <img src="https://travis-ci.org/Exelord/Monarchy.svg?branch=master">
5
+ </a>
6
+ <a href="https://gemnasium.com/github.com/Exelord/Monarchy">
7
+ <img src="https://gemnasium.com/badges/github.com/Exelord/Monarchy.svg">
8
+ </a>
9
+ <a href="https://gitter.im/Exelord/Monarchy?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge">
10
+ <img src="https://badges.gitter.im/Exelord/Monarchy.svg">
11
+ </a>
12
+ <a href="https://codeclimate.com/github/Exelord/Monarchy">
13
+ <img src="https://codeclimate.com/github/Exelord/Monarchy/badges/gpa.svg">
14
+ </a>
8
15
  </p>
9
16
 
17
+ Monarchy is a ruby gem offering a complete solution to manage an access in your web application.
18
+ Hierarchical structure and built-in roles inheritance options make it the most powerful tool to control an access to your resources.
19
+
20
+ Thanks to [closure_tree](https://github.com/mceachen/closure_tree), Monarchy can deliver the best in class algorithmic performance and allows you to forget about hierarchies and complicated structures.
21
+
22
+ It is like a [rolify](https://github.com/RolifyCommunity/rolify) but with advanced possibilities to inherit roles and collect all accessible resources with just one method.
23
+
24
+ ## Usage Example
25
+ After Monarchy setup you can enjoy with roles inheritance and accessible resources.
26
+
27
+ ```ruby
28
+ # Create roles
29
+ admin_role = Monarchy.role_class.create(name: :admin, level: 5, inherited: true)
30
+ manager_role = Monarchy.role_class.create(name: :manager, level: 4, inherited_role: admin_role, inherited: true)
31
+
32
+ # Create resources
33
+ project1 = Project.create()
34
+ project2 = Project.create(parent: project1)
35
+ project3 = Project.create(parent: project2)
36
+ project4 = Project.create()
37
+
38
+ # Grant user
39
+ user.grant(:manager, project2)
40
+
41
+ # Accessible projects
42
+ Project.accessible_for(user) # returns [Project1, Project2, Project3]
43
+
44
+ # User inherited roles
45
+ user.roles_for(project1) # returns a default role eg. [guest_role]
46
+ user.roles_for(project2) # returns [manager_role]
47
+ user.roles_for(project3) # returns [admin_role]
48
+ user.roles_for(project4) # returns empty array []
49
+ ```
50
+
51
+ ## Requirements
52
+ Monarchy requires:
53
+ - Ruby 2.3
54
+
10
55
  ## Documentation
11
- There is existing fully documentation for that project in our Wiki. Take a look at [Monarchy Documentation] (https://github.com/Exelord/Monarchy/wiki)
56
+ We are preparing an official [website][5c7e0096] with documentation.
57
+ Meanwhile you can look to the `docs` directory for actual [documentation](https://github.com/Exelord/Monarchy/tree/master/docs).
12
58
 
13
59
  ## Contributing
14
60
 
@@ -16,4 +62,6 @@ Bug reports and pull requests are welcome on GitHub at https://github.com/exelor
16
62
 
17
63
  ## License
18
64
 
19
- The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
65
+ This version of the gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
66
+
67
+ [5c7e0096]: https://exelord.github.io/Monarchy/ "Monarchy Website"
@@ -1,45 +1,45 @@
1
- ## Hierarchy
1
+ # Hierarchy
2
2
  `Hierarchy` is an internal model of `Monarchy` and should not be used unless it is really necessary.
3
3
 
4
4
  > hmm... sounds like `private`
5
5
 
6
- ### Methods
6
+ ## Methods
7
7
  ** We do not recommend to use it but if yo have to: **
8
8
  We are using [Closure Tree][e5c808aa] behind `Hierarchy` class. There is a bunch of methods and functions available behind the hood. Check their documentation.
9
9
 
10
10
  [e5c808aa]: https://github.com/mceachen/closure_tree "Closure Tree"
11
11
 
12
- ### Scopes:
12
+ ## Scopes:
13
13
 
14
- #### .accessible_for
14
+ ### .accessible_for
15
15
  You can select all hierarchies accessible for specific user by using a scope: `accessible_for`, eg:
16
16
  ``` ruby
17
- Monarchy::Hierarchy.accessible_for(current_user) # returns [hierarchy1, hierarchy2, hierarchy5]
17
+ Monarchy.hierarchy_class.accessible_for(current_user) # returns [hierarchy1, hierarchy2, hierarchy5]
18
18
  ```
19
19
 
20
- #### .in(resource, true)
20
+ ### .in(resource, true)
21
21
  You can select all hierarchies scoped into another by using scope: `in`:
22
22
 
23
23
  - If the second argument is `true` (`true` is by default):
24
24
  ``` ruby
25
- Monarchy::Hierarchy.in(project.hierarchy) # returns [hierarchy1, hierarchy2, hierarchy5]
25
+ Monarchy.hierarchy_class.in(project.hierarchy) # returns [hierarchy1, hierarchy2, hierarchy5]
26
26
  ```
27
27
  It will returns for you all `hierarchies` which parent is `project.hierarchy` or one of his children.
28
28
 
29
29
  - If the second argument is `false`:
30
30
  ``` ruby
31
- Monarchy::Hierarchy.in(project.hierarchy, false) # returns [hierarchy1, hierarchy2]
31
+ Monarchy.hierarchy_class.in(project.hierarchy, false) # returns [hierarchy1, hierarchy2]
32
32
  ```
33
33
  It will returns for you all `hierarchies` which parent is `project.hierarchy`
34
34
 
35
35
 
36
36
  ## Relations
37
37
 
38
- #### #members
38
+ ### #members
39
39
  Return all members explicitly granted to the hierarchy.
40
40
 
41
- #### #users
41
+ ### #users
42
42
  Returns all users which have been granted explicitly to the hierarchy.
43
43
 
44
- #### #resource
44
+ ### #resource
45
45
  Returns a resource model of the hierarchy.
@@ -0,0 +1,34 @@
1
+ # Member
2
+ It is a model of class which was registered in Monarchy config and is acting as `acts_as_member`.
3
+
4
+ ## Methods:
5
+
6
+ ### #resource
7
+ Returns a resource of member, example:
8
+ ``` ruby
9
+ User was granted to Project so the resource of his Member will be Project
10
+ ```
11
+
12
+ ### #resource=
13
+ You can overwrite a `#resource` for `member` by using:
14
+ ```ruby
15
+ member.resource = new_resource_model
16
+ ```
17
+
18
+ ## Scopes:
19
+
20
+ ### .accessible_for
21
+ You can select all members accessible for specific user by using a scope: `accessible_for`, eg:
22
+ ``` ruby
23
+ Monarchy::member_class.accessible_for(current_user) # returns [member1, member2, member5]
24
+ ```
25
+ ## Public Relations:
26
+
27
+ ### #roles
28
+ Returns all roles explicitly assigned to the member.
29
+
30
+ ### #user
31
+ Returns a user model of the member.
32
+
33
+ ### #hierarchy
34
+ Returns a hierarchy model of the member.
@@ -1,3 +1,5 @@
1
+ # Resource
2
+
1
3
  To generate a new resource you can use:
2
4
  ```
3
5
  rails g monarchy:resource [resource_name]
@@ -9,7 +11,7 @@ class Resource < ActiveRecord::Base
9
11
  end
10
12
  ```
11
13
 
12
- ##### - Options
14
+ #### - Options
13
15
  You can pass an options to `acts_as_resource`:
14
16
  - `parent_as: :association_name`
15
17
 
@@ -27,7 +29,7 @@ You can pass an options to `acts_as_resource`:
27
29
 
28
30
  ## Methods
29
31
 
30
- #### #parent
32
+ ### #parent
31
33
  You can easily assign parent by using `parent=` method, eg:
32
34
  ``` ruby
33
35
  resource.parent = Project.last
@@ -39,7 +41,7 @@ resource.parent # returns Project.last
39
41
 
40
42
  Parents can be only models which have `acts_as_resource`
41
43
 
42
- #### #children
44
+ ### #children
43
45
  You can easily assign children by using `children=` method, eg:
44
46
  ``` ruby
45
47
  resource.children = [child1, child2, child3]
@@ -50,25 +52,25 @@ resource.children # returns [child1, child2, child3]
50
52
  ```
51
53
  Children can be only models which have `acts_as_resource`
52
54
 
53
- #### #ensure_hierarchy
55
+ ### #ensure_hierarchy
54
56
  It creates a hierarchy for resource model if it not exist and `automatic_hierarchy` flag is set to true.
55
57
  If you want to bypass `automatic_hierarchy` flag you can pass `true` to the method params.
56
58
 
57
- #### .default_role_name
59
+ ### .default_role_name
58
60
  Returns default role name for the class
59
61
 
60
- #### .default_role
62
+ ### .default_role
61
63
  Returns default role object `Monarchy::Role` for the class
62
64
 
63
65
  ### Scopes:
64
66
 
65
- #### .accessible_for
67
+ ### .accessible_for
66
68
  You can select all resources accessible for specyfic user by using scope: `accessible_for`, eg:
67
69
  ``` ruby
68
70
  Resource.accessible_for(current_user) # returns [resource1, resource2, resource5]
69
71
  ```
70
72
 
71
- #### .in(resource, true)
73
+ ### .in(resource, true)
72
74
  You can select all resources scoped into another by using scope: `in`:
73
75
 
74
76
  - If the second argument is `true` (`true` is by default):
@@ -86,13 +88,13 @@ It will return for you all `resources` which parent is `Project.first`
86
88
 
87
89
  ## Relations
88
90
 
89
- #### #members
91
+ ### #members
90
92
  Return all members explicitly granted to the resource.
91
93
 
92
- #### #users
94
+ ### #users
93
95
  Returns all users which have been granted explicitly to the resource.
94
96
 
95
- #### #hierarchy
97
+ ### #hierarchy
96
98
  Returns a hierarchy model of the resource. (DO NOT USE UNLESS IS NECESSARY)
97
99
 
98
100
  ## Flags
@@ -0,0 +1,12 @@
1
+ # Role
2
+
3
+ It is a model of a class which was registered in Monarchy config and is acting as `acts_as_role`.
4
+
5
+ ## Public Relations:
6
+
7
+ ### #members
8
+ Returns all members with the role which was explicitly assigned.
9
+
10
+ ### #inherited_role
11
+ Returns a `role` which will be inherited to lower level resources.
12
+ > If you would like to know more about `inherited_role` check the `Usage` page.
data/docs/acts_as_user.md CHANGED
@@ -1,3 +1,5 @@
1
+ # User
2
+
1
3
  You have to add it to your user model or the custom one specified in a config file.
2
4
 
3
5
  ``` ruby
@@ -8,43 +10,43 @@ end
8
10
 
9
11
  ## Relations
10
12
 
11
- #### .hierarchies
13
+ ### .hierarchies
12
14
  Return all hierarchies in which user is explicitly granted.
13
15
 
14
- #### .members
16
+ ### .members
15
17
  Returns all memberships (`member` model) of the user
16
18
 
17
19
  ## Scopes
18
20
 
19
- #### .accessible_for (user)
21
+ ### .accessible_for (user)
20
22
  Returns all users accessible for the specific user
21
23
  It includes all users from all resource which the user has any access.
22
24
 
23
25
  ## Methods
24
26
 
25
- #### #roles_for(resource, inheritance = true)
27
+ ### #roles_for(resource, inheritance = true)
26
28
  Returns all roles for the user to the specific `resource`.
27
29
  You can choose if this method should return also inherited roles or just these, granted explicitly.
28
30
 
29
- #### #member_for(resource)
31
+ ### #member_for(resource)
30
32
  Returns a `member` object for the user in specyfic resource.
31
33
 
32
- #### #grant(role_names, resource)
34
+ ### #grant(role_names, resource)
33
35
  By this method, you can give the user an access to a specific resource.
34
36
  You can specify a role name or an array of roles names.
35
37
  **Remember to use `symbols`!**
36
38
 
37
- #### #revoke_access(resource)
39
+ ### #revoke_access(resource)
38
40
  You can revoke total access of a user from the resource and his children by using this method.
39
41
  Optionally you can specify `hierarchies` as the second argument from which user's members should be deleted.
40
42
 
41
- #### #revoke_role(role_name, resource)
43
+ ### #revoke_role(role_name, resource)
42
44
  It revokes specified role from a user's member of the resource.
43
45
  If is it last role and the default for the resource it will raise an error `Monarchy::Exceptions::RoleNotRevokable`. Otherwise, if it's just a last role it will remove the one and grant a user with default one.
44
46
 
45
47
  **It guaranty that user will have always last role or a default one**
46
48
 
47
- #### #revoke_role!(role_name, resource)
49
+ ### #revoke_role!(role_name, resource)
48
50
  It behaves exactly like `#revoke_role` but with one difference during revoking last_role.
49
51
  Depend on which `revoke_strategy` did you choose in configuration,
50
52
  it will delete a member after revoking the last role or will revoke an access to the resource.
@@ -0,0 +1,97 @@
1
+ # Installation and Usage
2
+
3
+ ## Install a gem
4
+ Add this line to your application's Gemfile:
5
+
6
+ ```ruby
7
+ gem 'monarchy'
8
+ ```
9
+
10
+ And then execute:
11
+
12
+ $ bundle
13
+
14
+ To create initials migrations and necessary files run:
15
+ ```
16
+ rails g monarchy:setup
17
+ ```
18
+
19
+ This will create for you:
20
+
21
+ 1. Migrations:
22
+ - `monarchy_create_users`
23
+ - `monarchy_create_hierarchies`
24
+ - `monarchy_create_memberships`
25
+ 2. Configuration file in `config/initializers/monarchy`
26
+ 3. Default `User` model (optional)
27
+
28
+ **If you want to use your current `User` model just skip generation of: **
29
+ - `db/migrate/monarchy_create_users.rb`
30
+ - `app/models/user.rb`
31
+
32
+ And add to your current `User` model `acts_as_user`
33
+
34
+ ## Create roles
35
+ Go to `rails console` or create a migration with your new roles.
36
+
37
+ ### How to create a role?
38
+ Think about your roles structure.
39
+ You can access role class through: `Monarchy.role_class`
40
+
41
+ Below you can find `Role` parameters with description.
42
+
43
+ #### Properties description
44
+
45
+ - `name` - `REQUIRED` - `symbol` - name of the role
46
+
47
+ - `level` - `0 as DEFAULT` - `number` - higher level means higher level of access, eg. Admin has 10, User has 1
48
+
49
+ - `inherited` - `true by DEFAULT` - `boolean` - defines if role should be down inherited or not
50
+ - `inherited_role_id` - `(SELF) as DEFAULT` - `number` - id of role which should be inherited to lower resources (ROLE HAS TO EXIST), eg.
51
+ - Role `manager` has `inherited_role` as `member` and `inherited` flag has been set to `true`.
52
+ - Example `User` has been granted as `manager` to `Project`.
53
+ - In all resources bellow `Project`, the user will have a `member` role which was down inherited from `manager`
54
+
55
+ #### Example hash:
56
+ ``` ruby
57
+ hash_with_properties = {
58
+ name: :admin,
59
+ level: 5,
60
+ inherited_role_id: 4,
61
+ inherited: true
62
+ }
63
+ ```
64
+
65
+ #### Role creating
66
+ ```ruby
67
+ Monarchy.role_class.create(hash_with_properties)
68
+ ```
69
+
70
+ ## Setup actors
71
+
72
+ ### Mark user as actor
73
+ Setup your resources by adding `acts_as_resource` (for docs look to `Resource` page).
74
+
75
+ For your current `User` model or freshly generated one, add or check if exist, `acts_as_user`.
76
+ ``` ruby
77
+ class User < ActiveRecord::Base
78
+ acts_as_user
79
+ end
80
+ ```
81
+
82
+ > Check documentation of [Acts as user] (https://github.com/Exelord/Monarchy/wiki/Acts-as-user)
83
+
84
+ ### Mark resources as actors
85
+ For all models that you want to be accessible for users and controlled by `Monarchy` add `acts_as_resource`.
86
+
87
+ > Check documentation of [Acts as resource] (https://github.com/Exelord/Monarchy/wiki/Acts-as-resource)
88
+
89
+ ## Build a tree!
90
+ Build Hierarchies and a tree with just one command in `rails console`
91
+
92
+ ``` ruby
93
+ Monarchy.rebuild!
94
+ ```
95
+
96
+ That's it...
97
+ > Have a long monarchy! :)
@@ -18,8 +18,5 @@ module Dummy
18
18
  # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
19
19
  # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
20
20
  # config.i18n.default_locale = :de
21
-
22
- # Do not swallow errors in after_commit/after_rollback callbacks.
23
- config.active_record.raise_in_transactional_callbacks = true
24
21
  end
25
22
  end
@@ -23,7 +23,7 @@ Rails.application.configure do
23
23
 
24
24
  # Disable serving static files from the `/public` folder by default since
25
25
  # Apache or NGINX already handles this.
26
- config.serve_static_files = ENV['RAILS_SERVE_STATIC_FILES'].present?
26
+ config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present?
27
27
 
28
28
  # Compress JavaScripts and CSS.
29
29
  config.assets.js_compressor = :uglifier
@@ -14,8 +14,8 @@ Rails.application.configure do
14
14
  config.eager_load = false
15
15
 
16
16
  # Configure static file server for tests with Cache-Control for performance.
17
- config.serve_static_files = true
18
- config.static_cache_control = 'public, max-age=3600'
17
+ config.public_file_server.enabled = true
18
+ config.public_file_server.headers = { 'Cache-Control' => 'public, max-age=3600' }
19
19
 
20
20
  # Show full error reports and disable caching.
21
21
  config.consider_all_requests_local = true
@@ -31,35 +31,43 @@ module Monarchy
31
31
 
32
32
  scope :accessible_for, (lambda do |user|
33
33
  Monarchy::Validators.user(user)
34
- where(id: accessible_roots(user).union(accessible_leaves(user)))
34
+ user_id = user.id
35
+ where(id: accessible_roots_ids(user_id).union_all(accessible_leaves_ids(user_id)))
35
36
  end)
36
37
  end
37
38
 
38
- def accessible_roots(user)
39
- unscoped.joins('INNER JOIN "monarchy_hierarchy_hierarchies" ON '\
40
- '"monarchy_hierarchies"."id" = "monarchy_hierarchy_hierarchies"."ancestor_id"')
41
- .joins('INNER JOIN "monarchy_members" ON '\
42
- '"monarchy_members"."hierarchy_id" = "monarchy_hierarchy_hierarchies"."descendant_id"')
43
- .where(monarchy_members: { user_id: user.id }).distinct
39
+ def accessible_roots_ids(user_id)
40
+ unscoped.joins('INNER JOIN monarchy_hierarchy_hierarchies ON ' \
41
+ 'monarchy_hierarchies.id = monarchy_hierarchy_hierarchies.ancestor_id')
42
+ .joins('INNER JOIN (SELECT hierarchy_id FROM monarchy_members ' \
43
+ "WHERE monarchy_members.user_id = #{user_id}) as members ON " \
44
+ 'members.hierarchy_id = monarchy_hierarchy_hierarchies.descendant_id').select(:id)
44
45
  end
45
46
 
46
- def accessible_leaves(user)
47
- descendant_leaves.where('monarchy_hierarchy_hierarchies.descendant_id': descendant_leaves_for_user(user)
48
- .where('monarchy_roles.inherited': false)
49
- .select('monarchy_hierarchy_hierarchies.ancestor_id')).union(
50
- descendant_leaves
51
- .where('monarchy_hierarchy_hierarchies.ancestor_id': descendant_leaves_for_user(user)
52
- .where.not('monarchy_roles.inherited': false))
53
- )
47
+ def accessible_leaves_ids(user_id)
48
+ ancestor_leaves_for_user(user_id)
49
+ .select('monarchy_hierarchy_hierarchies.ancestor_id AS id')
50
+ .union_all(descendant_leaves_for_user(user_id)).select(:id)
54
51
  end
55
52
 
56
- def descendant_leaves_for_user(user)
57
- descendant_leaves.joins(members: [:roles]).where(monarchy_members: { user_id: user.id })
53
+ def ancestor_leaves_for_user(user_id, inherited = false)
54
+ inherited = inherited ? 't' : 'f'
55
+
56
+ unscoped
57
+ .joins('INNER JOIN monarchy_hierarchy_hierarchies ON ' \
58
+ 'monarchy_hierarchies.id = monarchy_hierarchy_hierarchies.descendant_id')
59
+ .joins('INNER JOIN (SELECT id, hierarchy_id FROM monarchy_members WHERE ' \
60
+ "user_id = #{user_id}) as monarchy_members ON monarchy_members.hierarchy_id = monarchy_hierarchies.id")
61
+ .joins('INNER JOIN monarchy_members_roles ON monarchy_members_roles.member_id = monarchy_members.id')
62
+ .joins("INNER JOIN (SELECT id, inherited FROM monarchy_roles WHERE inherited = '#{inherited}') as " \
63
+ 'monarchy_roles ON monarchy_members_roles.role_id = monarchy_roles.id')
58
64
  end
59
65
 
60
- def descendant_leaves
61
- unscoped.joins('INNER JOIN "monarchy_hierarchy_hierarchies" ON "monarchy_hierarchies"."id" =' \
62
- '"monarchy_hierarchy_hierarchies"."descendant_id"')
66
+ def descendant_leaves_for_user(user_id)
67
+ ancestor_leaves_for_user(user_id, true)
68
+ .joins('INNER JOIN monarchy_hierarchy_hierarchies AS monarchy_descendants ON ' \
69
+ 'monarchy_descendants.ancestor_id = monarchy_hierarchies.id')
70
+ .select('monarchy_descendants.descendant_id AS id')
63
71
  end
64
72
  end
65
73
  end
@@ -63,17 +63,24 @@ module Monarchy
63
63
 
64
64
  def resource_and_inheritance_roles(resource)
65
65
  hierarchy_ids = resource.hierarchy.ancestors.select(:id)
66
+
66
67
  Monarchy.role_class.where(id:
67
- Monarchy.role_class.joins(:members).where('monarchy_members.user_id': id)
68
- .where('monarchy_roles.inherited': 't', 'monarchy_members.hierarchy_id': hierarchy_ids)
69
- .select(:inherited_role_id))
68
+ Monarchy.role_class
69
+ .joins('INNER JOIN monarchy_members_roles ON monarchy_roles.id = monarchy_members_roles.role_id')
70
+ .joins("INNER JOIN (SELECT id, hierarchy_id FROM monarchy_members WHERE user_id = #{id}) as " \
71
+ 'monarchy_members ON monarchy_members.id = monarchy_members_roles.member_id')
72
+ .where('monarchy_roles.inherited': 't')
73
+ .where('monarchy_members.hierarchy_id': hierarchy_ids)
74
+ .select('monarchy_roles.inherited_role_id'))
70
75
  .union(resource_roles(resource))
71
- .distinct
72
76
  end
73
77
 
74
78
  def resource_roles(resource)
75
- Monarchy.role_class.joins(:members)
76
- .where('monarchy_members.hierarchy_id': resource.hierarchy.id, 'monarchy_members.user_id': id)
79
+ Monarchy.role_class
80
+ .joins('INNER JOIN monarchy_members_roles ON monarchy_roles.id = monarchy_members_roles.role_id')
81
+ .joins('INNER JOIN (SELECT id, hierarchy_id FROM monarchy_members WHERE ' \
82
+ "hierarchy_id = #{resource.hierarchy.id} AND user_id = #{id}) as monarchy_members ON " \
83
+ 'monarchy_members.id = monarchy_members_roles.member_id')
77
84
  end
78
85
 
79
86
  def descendant_role(resource)
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Monarchy
3
- VERSION = '2.0.0-beta.1'
3
+ VERSION = '2.0.4'
4
4
  end
data/monarchy.gemspec CHANGED
@@ -24,8 +24,9 @@ Gem::Specification.new do |s|
24
24
  s.bindir = 'exe'
25
25
  s.executables = s.files.grep(%r{^exe/}) { |f| File.basename(f) }
26
26
  s.require_paths = ['lib']
27
+ s.required_ruby_version = '>= 2.3'
27
28
 
28
- s.add_runtime_dependency 'rails', '~> 4.2', '>= 4.2.7.1'
29
+ s.add_dependency 'activerecord', '>=4.2.7.1'
29
30
  s.add_dependency 'closure_tree', '6.2.0'
30
31
  s.add_dependency 'configurations', '2.2.1'
31
32
  s.add_dependency 'active_record_union', '1.2.0'
metadata CHANGED
@@ -1,22 +1,19 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: monarchy
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.pre.beta.1
4
+ version: 2.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Exelord
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-10-28 00:00:00.000000000 Z
11
+ date: 2016-11-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rails
14
+ name: activerecord
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '4.2'
20
17
  - - ">="
21
18
  - !ruby/object:Gem::Version
22
19
  version: 4.2.7.1
@@ -24,9 +21,6 @@ dependencies:
24
21
  prerelease: false
25
22
  version_requirements: !ruby/object:Gem::Requirement
26
23
  requirements:
27
- - - "~>"
28
- - !ruby/object:Gem::Version
29
- version: '4.2'
30
24
  - - ">="
31
25
  - !ruby/object:Gem::Version
32
26
  version: 4.2.7.1
@@ -136,6 +130,7 @@ extensions: []
136
130
  extra_rdoc_files: []
137
131
  files:
138
132
  - ".codeclimate.yml"
133
+ - ".github_changelog_generator"
139
134
  - ".gitignore"
140
135
  - ".rspec"
141
136
  - ".rubocop.yml"
@@ -155,11 +150,12 @@ files:
155
150
  - bin/console
156
151
  - bin/setup
157
152
  - docs/acts_as_hierarchy.md
153
+ - docs/acts_as_member.md
158
154
  - docs/acts_as_resource.md
155
+ - docs/acts_as_role.md
159
156
  - docs/acts_as_user.md
160
157
  - docs/configuration.md
161
- - docs/installation.md
162
- - docs/usage.md
158
+ - docs/installation_and_usage.md
163
159
  - dummy/.rspec
164
160
  - dummy/README.rdoc
165
161
  - dummy/Rakefile
@@ -255,15 +251,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
255
251
  requirements:
256
252
  - - ">="
257
253
  - !ruby/object:Gem::Version
258
- version: '0'
254
+ version: '2.3'
259
255
  required_rubygems_version: !ruby/object:Gem::Requirement
260
256
  requirements:
261
- - - ">"
257
+ - - ">="
262
258
  - !ruby/object:Gem::Version
263
- version: 1.3.1
259
+ version: '0'
264
260
  requirements: []
265
261
  rubyforge_project:
266
- rubygems_version: 2.6.7
262
+ rubygems_version: 2.6.8
267
263
  signing_key:
268
264
  specification_version: 4
269
265
  summary: Hierarchical access management system with roles inheritance.
data/docs/installation.md DELETED
@@ -1,30 +0,0 @@
1
- # Installation
2
- Add this line to your application's Gemfile:
3
-
4
- ```ruby
5
- gem 'monarchy'
6
- ```
7
-
8
- And then execute:
9
-
10
- $ bundle
11
-
12
- To create initials migrations and necessary files run:
13
- ```
14
- rails g monarchy:setup
15
- ```
16
-
17
- This will create for you:
18
-
19
- 1. Migrations:
20
- - `monarchy_create_users`
21
- - `monarchy_create_hierarchies`
22
- - `monarchy_create_memberships`
23
- 2. Configuration file in `config/initializers/monarchy`
24
- 3. Default `User` model (optional)
25
-
26
- **If you want to use your current `User` model just skip generation of: **
27
- - `db/migrate/monarchy_create_users.rb`
28
- - `app/models/user.rb`
29
-
30
- And add to your current `User` model `acts_as_user`
data/docs/usage.md DELETED
@@ -1,22 +0,0 @@
1
- # Usage
2
- The only think you have to do is mark models to be one of part of Monarchy.
3
-
4
- You can use 2 available markers:
5
-
6
- 1. `acts_as_user`
7
- 2. `acts_as_resource`
8
-
9
- ## Acts as user
10
- For your current `User` model or freshly generated one, add or check if exist, `acts_as_user`.
11
- ``` ruby
12
- class User < ActiveRecord::Base
13
- acts_as_user
14
- end
15
- ```
16
-
17
- > Check documentation of [Acts as user] (https://github.com/Exelord/Monarchy/wiki/Acts-as-user)
18
-
19
- ## Acts as resource
20
- For all models that you want to be accessible for users add `acts_as_resource`.
21
-
22
- > Check documentation of [Acts as resource] (https://github.com/Exelord/Monarchy/wiki/Acts-as-resource)