righter 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (104) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/Rakefile +28 -0
  4. data/app/models/righter_right.rb +75 -0
  5. data/app/models/righter_rights_righter_role.rb +4 -0
  6. data/app/models/righter_role.rb +82 -0
  7. data/app/models/righter_role_grant.rb +7 -0
  8. data/app/models/righter_roles_user.rb +2 -0
  9. data/db/migrate/20150910000000_create_righter_rights.rb +21 -0
  10. data/db/migrate/20150910000001_create_righter_roles.rb +20 -0
  11. data/db/migrate/20150910000002_righter_roles_righter_access_rights.rb +14 -0
  12. data/db/migrate/20150910000003_create_righter_roles_users.rb +14 -0
  13. data/lib/init.rb +1 -0
  14. data/lib/injections/righter_for_application_controller.rb +31 -0
  15. data/lib/injections/righter_for_resource.rb +110 -0
  16. data/lib/injections/righter_for_user.rb +186 -0
  17. data/lib/righter.rb +9 -0
  18. data/lib/righter/version.rb +3 -0
  19. data/lib/righter_error.rb +8 -0
  20. data/lib/tasks/righter_tasks.rake +4 -0
  21. data/test/dummy/README.rdoc +28 -0
  22. data/test/dummy/Rakefile +11 -0
  23. data/test/dummy/app/assets/javascripts/application.js +13 -0
  24. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  25. data/test/dummy/app/controllers/application_controller.rb +6 -0
  26. data/test/dummy/app/controllers/doors_controller.rb +23 -0
  27. data/test/dummy/app/helpers/application_helper.rb +2 -0
  28. data/test/dummy/app/models/door.rb +10 -0
  29. data/test/dummy/app/models/house.rb +7 -0
  30. data/test/dummy/app/models/player.rb +7 -0
  31. data/test/dummy/app/models/righter_roles_player.rb +2 -0
  32. data/test/dummy/app/models/user.rb +4 -0
  33. data/test/dummy/app/views/doors/show.html.erb +1 -0
  34. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  35. data/test/dummy/bin/bundle +3 -0
  36. data/test/dummy/bin/rails +4 -0
  37. data/test/dummy/bin/rake +4 -0
  38. data/test/dummy/bin/setup +29 -0
  39. data/test/dummy/config.ru +4 -0
  40. data/test/dummy/config/application.rb +25 -0
  41. data/test/dummy/config/boot.rb +5 -0
  42. data/test/dummy/config/database.yml +25 -0
  43. data/test/dummy/config/environment.rb +5 -0
  44. data/test/dummy/config/environments/development.rb +41 -0
  45. data/test/dummy/config/environments/production.rb +79 -0
  46. data/test/dummy/config/environments/test.rb +42 -0
  47. data/test/dummy/config/initializers/assets.rb +11 -0
  48. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  49. data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
  50. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  51. data/test/dummy/config/initializers/inflections.rb +16 -0
  52. data/test/dummy/config/initializers/mime_types.rb +4 -0
  53. data/test/dummy/config/initializers/session_store.rb +3 -0
  54. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  55. data/test/dummy/config/locales/en.yml +23 -0
  56. data/test/dummy/config/routes.rb +8 -0
  57. data/test/dummy/config/secrets.yml +22 -0
  58. data/test/dummy/db/migrate/20150911000000_create_players.rb +18 -0
  59. data/test/dummy/db/migrate/20150911000002_create_users_table.rb +15 -0
  60. data/test/dummy/db/migrate/20150911000003_create_doors.rb +14 -0
  61. data/test/dummy/db/migrate/20150911000004_create_houses.rb +13 -0
  62. data/test/dummy/db/migrate/20150911000005_add_house_reference_to_doors.rb +9 -0
  63. data/test/dummy/db/schema.rb +90 -0
  64. data/test/dummy/db/test.sqlite3 +0 -0
  65. data/test/dummy/log/development.log +35 -0
  66. data/test/dummy/log/test.log +117973 -0
  67. data/test/dummy/public/404.html +67 -0
  68. data/test/dummy/public/422.html +67 -0
  69. data/test/dummy/public/500.html +66 -0
  70. data/test/dummy/public/favicon.ico +0 -0
  71. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/0-mgT1BVDUIUlj7bJxvh7Ud3uSbC1DJf0Ok7Ehgieds.cache +1 -0
  72. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/5Lly_CA8DZvPhQV2jDQx-Y6P_y3Ygra9t5jfSlGhHDA.cache +2 -0
  73. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/9jPCqzZvmeFf31Rz8y3OEo8OQXEHVcwmLgkx0tXs-o8.cache +1 -0
  74. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/OI6uxGcnsKavdWTtwDAasU3wPx8QXhzBgV0X2n1KjMQ.cache +3 -0
  75. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/VTeG_7OBrkPzWFSh3MrTa0NSl2wOuJfTJ-XP7JqBG2w.cache +0 -0
  76. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/a2CYO1s9hME5T1pntwZMB7J6dYjS0zCmDxw_7zX1T14.cache +0 -0
  77. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/d71F8V8hdfF1jAttqkXKdizYR9PcM_zuKn_Lj_73gfE.cache +1 -0
  78. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/hCBjLjjeqhUCs4tdwCYlGcFA4xohMwurjmZx6OY1a7g.cache +0 -0
  79. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/hZi1k6tpxxCGYxRe7zY74ItcOI8gZrREOpGuA8JSpGg.cache +3 -0
  80. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/ifgPguUzTOUeqB0zW0GV8DL6HEvPpakIWAzNPVuCGW0.cache +1 -0
  81. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/j8yaH5wiyIN5a2xePYA_lQm39RgOQh27UiF5A7i6b28.cache +0 -0
  82. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/o2kqwqoUQ3gkgncZO1IWdVRzFD0wCSQ-HyL62cINFOU.cache +1 -0
  83. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/pEhaat2KBd5SrT7szC_8R1_6hK17FTpvoRFkmCRSD3M.cache +2 -0
  84. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/pIwp2wi1sfaJlhiwzzvyyV0hKOihhYkP6709hRtpHxg.cache +0 -0
  85. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/pQIgTfLmEPykNamzxdqBww21SMT7YlZlZGy6hgQ6eVE.cache +1 -0
  86. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/td9wUl9SLRnSSgE2ZK_VqCzLxTkFiCW50KkOhE916Wo.cache +1 -0
  87. data/test/factories/doors.rb +10 -0
  88. data/test/factories/houses.rb +7 -0
  89. data/test/factories/players.rb +6 -0
  90. data/test/factories/righter_rights.rb +11 -0
  91. data/test/factories/righter_roles.rb +9 -0
  92. data/test/factories/users.rb +9 -0
  93. data/test/fixtures/players.yml +6 -0
  94. data/test/fixtures/righter_rights.yml +21 -0
  95. data/test/fixtures/righter_roles.yml +29 -0
  96. data/test/fixtures/users.yml +27 -0
  97. data/test/functional/doors_controller_test.rb +71 -0
  98. data/test/righter_test.rb +9 -0
  99. data/test/test_helper.rb +54 -0
  100. data/test/unit/righter_for_resource_test.rb +137 -0
  101. data/test/unit/righter_right_test.rb +74 -0
  102. data/test/unit/righter_role_test.rb +197 -0
  103. data/test/unit/righter_user_test.rb +271 -0
  104. metadata +271 -0
@@ -0,0 +1,271 @@
1
+ require 'test_helper'
2
+
3
+ class RighterUserTest < ActiveSupport::TestCase
4
+ fixtures :righter_rights, :righter_roles, :users, :players
5
+
6
+ def setup
7
+ RighterRight.clear_cache
8
+ end
9
+
10
+ test 'righter_accessible? :role checks if user has appropriate role' do
11
+ u = users :one
12
+ r = righter_roles(:secret_agent)
13
+ assert !u.righter_accessible?(role: :secret_agent)
14
+ u.add_role r
15
+ assert u.righter_accessible?(role: :secret_agent)
16
+ end
17
+
18
+ test 'righter_accessible? :right checks if user has appropriate right' do
19
+ u = users :one
20
+ r = righter_rights(:kill)
21
+ ro = righter_roles(:secret_agent)
22
+ ro.add_right r
23
+
24
+ assert !u.righter_accessible?(right: :kill)
25
+ u.add_role ro
26
+ assert u.reload.righter_accessible?(right: :kill)
27
+ end
28
+
29
+ test 'righter_accessible? :controller/:action checks if user has any role with :controller/:action' do
30
+ u = users :one
31
+ ro = righter_roles(:secret_agent)
32
+ right_to_kill = righter_rights(:kill)
33
+ ro.add_right right_to_kill
34
+ u.add_role ro
35
+
36
+ assert !u.reload.righter_accessible?(controller: :james, action: :bond)
37
+ right_to_kill.add_access_to controller: :james, actions: [:bond]
38
+
39
+ assert u.reload.righter_accessible?(controller: :james, action: :bond)
40
+ end
41
+
42
+ test 'righter_accessible? :controller/:action : wildcards are correctly expanded in action names' do
43
+ RighterRightsRighterRole.delete_all
44
+ RighterRolesUser.delete_all
45
+ r = righter_rights :kill
46
+ r.add_access_to controller: :villains, actions: [:'francisco_*']
47
+ u = users :one
48
+ role_secret_agent = righter_roles(:secret_agent)
49
+ u.add_role role_secret_agent
50
+ role_secret_agent.add_right r
51
+
52
+ assert u.reload.righter_accessible?(controller: :villains, action: :francisco_scaramanga)
53
+ assert !u.righter_accessible?(controller: :villains, action: :goldfinder)
54
+
55
+ r2 = righter_rights :vamp
56
+ role_bond_girl = righter_roles(:bond_girl)
57
+ role_bond_girl.add_right r2
58
+ u2 = users :two
59
+ u2.add_role role_bond_girl
60
+ r2.add_access_to controller: :men, actions: [:'*']
61
+
62
+ assert u2.reload.righter_accessible?(controller: :men, action: :any_man_in_the_world)
63
+ assert !u.reload.righter_accessible?(controller: :men, action: :any_man_in_the_world)
64
+ end
65
+
66
+ test 'righter_accessible?: namespace/controller/action works with wildcards' do
67
+ r = righter_rights :kill
68
+ role_secret_agent = righter_roles(:secret_agent)
69
+ role_secret_agent.add_right r
70
+ r.add_access_to controller: :'evil/world', actions: [:'make_*']
71
+
72
+ u = users :one
73
+ u.add_role role_secret_agent
74
+
75
+ assert u.reload.righter_accessible?(controller: :'evil/world', action: :make_peace)
76
+ end
77
+
78
+ test 'righter_accessible?: resource rights' do
79
+ admin_role = FactoryGirl.create(:righter_role, name: 'admin')
80
+ user_role = FactoryGirl.create(:righter_role, name: 'user')
81
+ door = FactoryGirl.create(:door) # this creates paint_Door_{id}, change_Door_{id}, open_Door_{id}
82
+
83
+ admin = FactoryGirl.create(:user)
84
+ admin.add_role admin_role
85
+
86
+ user = FactoryGirl.create(:user)
87
+ user.add_role user_role
88
+
89
+ guest = FactoryGirl.create(:user) # has no roles
90
+
91
+ assert_raises(RighterError) do
92
+ admin.reload.righter_accessible?(resource: door) # no right given
93
+ end
94
+
95
+ assert_raises(RighterError) do
96
+ admin.reload.righter_accessible?(resource: door, right: :unknown_right)
97
+ end
98
+
99
+ assert !admin.righter_accessible?(resource: door, right: :paint) # known right but without priviledge
100
+ assert admin.righter_accessible?(resource: door, right: :change)
101
+ assert admin.righter_accessible?(resource: door, right: :open)
102
+
103
+ assert !user.righter_accessible?(resource: door, right: :paint) # known right but without priviledge
104
+ assert !user.righter_accessible?(resource: door, right: :change) # known right but without priviledge
105
+ assert user.righter_accessible?(resource: door, right: :open)
106
+
107
+ assert !guest.righter_accessible?(resource: door, right: :paint) # known right but without priviledge
108
+ assert !guest.righter_accessible?(resource: door, right: :change) # known right but without priviledge
109
+ assert !guest.righter_accessible?(resource: door, right: :open)
110
+ end
111
+
112
+ test 'add_role/remove_role will raise error for non existing role' do
113
+ u = users :one
114
+ assert_raise RighterError do
115
+ u.add_role 'smth'
116
+ end
117
+ assert_raise RighterError do
118
+ u.remove_role 'smth2'
119
+ end
120
+ end
121
+
122
+ test 'remove_role will remove association between role and user but will keep the role' do
123
+ u = users :one
124
+ r = righter_roles :bond_girl
125
+ u.add_role r
126
+ assert u.righter_roles.include?(r)
127
+
128
+ assert_no_difference 'RighterRole.count', 'The role itself should not be deleted - only the association' do
129
+ u.remove_role r
130
+ assert !u.reload.righter_roles.include?(r)
131
+ end
132
+ end
133
+
134
+ test 'association is removed when role is deleted' do
135
+ user = users :one
136
+ role = righter_roles :bond_girl
137
+ assert_difference 'RighterRolesUser.count', 1 do
138
+ user.add_role role
139
+ end
140
+ assert_equal 1, user.righter_roles.size
141
+ assert_difference 'RighterRolesUser.count', -1 do
142
+ role.destroy
143
+ end
144
+ assert_equal 0, user.reload.righter_roles.size
145
+ end
146
+
147
+ test 'delete user' do
148
+ u = users :one
149
+ assert_difference 'User.count', -1 do
150
+ u.destroy
151
+ end
152
+ end
153
+
154
+ test 'association is removed when user is deleted' do
155
+ u = users :one
156
+ r = righter_roles :bond_girl
157
+ assert_difference 'RighterRolesUser.count', 1 do
158
+ u.add_role r
159
+ end
160
+ assert_equal 1, r.users.size
161
+ assert_difference 'RighterRolesUser.count', -1 do
162
+ u.destroy
163
+ end
164
+ assert_equal 0, r.reload.users.size
165
+ end
166
+
167
+ test 'righter_accessible? :right will raise error if asking for non existing right' do
168
+ u = users :one
169
+ assert_raise RighterError do
170
+ u.righter_accessible? right: :nonexistingright
171
+ end
172
+ end
173
+
174
+ test 'update_roles_with_respect_to_grants takes care that user-role can be paired only according to role grants' do
175
+ judi_dench = users :one
176
+ roger_moore = users :two
177
+ olga_kurylenko = users :three
178
+
179
+ role_mi6_boss = righter_roles :one
180
+ role_secret_agent = righter_roles :secret_agent
181
+ role_bond_girl = righter_roles :bond_girl
182
+
183
+ RighterRolesUser.delete_all
184
+ RighterRoleGrant.delete_all
185
+
186
+ judi_dench.add_role role_mi6_boss
187
+ role_mi6_boss.allow_to_grant_role role_secret_agent
188
+ role_secret_agent.allow_to_grant_role role_bond_girl
189
+
190
+ assert_equal [role_mi6_boss], judi_dench.reload.righter_roles
191
+ assert_equal [], roger_moore.reload.righter_roles
192
+ assert_equal [], olga_kurylenko.reload.righter_roles
193
+
194
+ User.current_user = judi_dench
195
+
196
+ roger_moore.update_roles_with_respect_to_grants [role_secret_agent]
197
+ assert_equal [role_mi6_boss], judi_dench.reload.righter_roles
198
+ assert_equal [role_secret_agent], roger_moore.reload.righter_roles
199
+ assert_equal [], olga_kurylenko.reload.righter_roles
200
+
201
+ olga_kurylenko.update_roles_with_respect_to_grants [role_bond_girl]
202
+ assert_equal [role_mi6_boss], judi_dench.reload.righter_roles
203
+ assert_equal [role_secret_agent], roger_moore.reload.righter_roles
204
+ assert_equal [], olga_kurylenko.reload.righter_roles
205
+
206
+ User.current_user = roger_moore.reload
207
+
208
+ olga_kurylenko.update_roles_with_respect_to_grants [role_bond_girl]
209
+ assert_equal [role_mi6_boss], judi_dench.reload.righter_roles
210
+ assert_equal [role_secret_agent], roger_moore.reload.righter_roles
211
+ assert_equal [role_bond_girl], olga_kurylenko.reload.righter_roles
212
+
213
+ judi_dench.update_roles_with_respect_to_grants [role_secret_agent]
214
+ assert_equal [role_mi6_boss], judi_dench.reload.righter_roles
215
+ assert_equal [role_secret_agent], roger_moore.reload.righter_roles
216
+ assert_equal [role_bond_girl], olga_kurylenko.reload.righter_roles
217
+
218
+ User.current_user = olga_kurylenko.reload
219
+
220
+ judi_dench.update_roles_with_respect_to_grants [role_bond_girl]
221
+ assert_equal [role_mi6_boss], judi_dench.reload.righter_roles
222
+ assert_equal [role_secret_agent], roger_moore.reload.righter_roles
223
+ assert_equal [role_bond_girl], olga_kurylenko.reload.righter_roles
224
+
225
+ olga_kurylenko.update_roles_with_respect_to_grants [role_secret_agent]
226
+ assert_equal [role_mi6_boss], judi_dench.reload.righter_roles
227
+ assert_equal [role_secret_agent], roger_moore.reload.righter_roles
228
+ assert_equal [role_bond_girl], olga_kurylenko.reload.righter_roles
229
+ end
230
+
231
+ test 'righter_player_roles' do
232
+ assert_nil Player.reflections[:righter_roles]
233
+ assert_nil RighterRole.reflections[:players]
234
+
235
+ Player.send :include, RighterForUser
236
+
237
+ assert Player.reflections['righter_roles'], 'Player should have association with RighterRoles'
238
+ assert RighterRole.reflections['players'], 'RighterRoles should have association with Players'
239
+
240
+ batman = players :batman
241
+ r = righter_roles(:secret_agent)
242
+ assert !batman.righter_accessible?(role: :secret_agent)
243
+ batman.add_role r
244
+ assert batman.righter_accessible?(role: :secret_agent)
245
+ end
246
+
247
+ test 'can? method' do
248
+ admin_role = FactoryGirl.create(:righter_role, name: 'admin')
249
+ user_role = FactoryGirl.create(:righter_role, name: 'user')
250
+ user = FactoryGirl.create(:user, login: 'user')
251
+ admin = FactoryGirl.create(:user, login: 'admin')
252
+
253
+ user.add_role(user_role)
254
+ admin.add_role(admin_role)
255
+
256
+ door = FactoryGirl.create(:door)
257
+
258
+ # Door:
259
+ # auto_manage_righter_right :paint
260
+ # auto_manage_righter_right :change, {auto_associate_roles: [:admin]}
261
+ # auto_manage_righter_right :open, {auto_associate_roles: [:admin, :user]}
262
+
263
+ assert !user.can?(:paint, door)
264
+ assert !user.can?(:change, door)
265
+ assert user.can?(:open, door)
266
+
267
+ assert !admin.can?(:paint, door)
268
+ assert admin.can?(:change, door)
269
+ assert admin.can?(:open, door)
270
+ end
271
+ end
metadata ADDED
@@ -0,0 +1,271 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: righter
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Adam Lieskovsky
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-09-12 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 4.2.4
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 4.2.4
27
+ - !ruby/object:Gem::Dependency
28
+ name: sqlite3
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: coveralls
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ description: ''
56
+ email:
57
+ - adamliesko@gmail.com
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - MIT-LICENSE
63
+ - Rakefile
64
+ - app/models/righter_right.rb
65
+ - app/models/righter_rights_righter_role.rb
66
+ - app/models/righter_role.rb
67
+ - app/models/righter_role_grant.rb
68
+ - app/models/righter_roles_user.rb
69
+ - db/migrate/20150910000000_create_righter_rights.rb
70
+ - db/migrate/20150910000001_create_righter_roles.rb
71
+ - db/migrate/20150910000002_righter_roles_righter_access_rights.rb
72
+ - db/migrate/20150910000003_create_righter_roles_users.rb
73
+ - lib/init.rb
74
+ - lib/injections/righter_for_application_controller.rb
75
+ - lib/injections/righter_for_resource.rb
76
+ - lib/injections/righter_for_user.rb
77
+ - lib/righter.rb
78
+ - lib/righter/version.rb
79
+ - lib/righter_error.rb
80
+ - lib/tasks/righter_tasks.rake
81
+ - test/dummy/README.rdoc
82
+ - test/dummy/Rakefile
83
+ - test/dummy/app/assets/javascripts/application.js
84
+ - test/dummy/app/assets/stylesheets/application.css
85
+ - test/dummy/app/controllers/application_controller.rb
86
+ - test/dummy/app/controllers/doors_controller.rb
87
+ - test/dummy/app/helpers/application_helper.rb
88
+ - test/dummy/app/models/door.rb
89
+ - test/dummy/app/models/house.rb
90
+ - test/dummy/app/models/player.rb
91
+ - test/dummy/app/models/righter_roles_player.rb
92
+ - test/dummy/app/models/user.rb
93
+ - test/dummy/app/views/doors/show.html.erb
94
+ - test/dummy/app/views/layouts/application.html.erb
95
+ - test/dummy/bin/bundle
96
+ - test/dummy/bin/rails
97
+ - test/dummy/bin/rake
98
+ - test/dummy/bin/setup
99
+ - test/dummy/config.ru
100
+ - test/dummy/config/application.rb
101
+ - test/dummy/config/boot.rb
102
+ - test/dummy/config/database.yml
103
+ - test/dummy/config/environment.rb
104
+ - test/dummy/config/environments/development.rb
105
+ - test/dummy/config/environments/production.rb
106
+ - test/dummy/config/environments/test.rb
107
+ - test/dummy/config/initializers/assets.rb
108
+ - test/dummy/config/initializers/backtrace_silencers.rb
109
+ - test/dummy/config/initializers/cookies_serializer.rb
110
+ - test/dummy/config/initializers/filter_parameter_logging.rb
111
+ - test/dummy/config/initializers/inflections.rb
112
+ - test/dummy/config/initializers/mime_types.rb
113
+ - test/dummy/config/initializers/session_store.rb
114
+ - test/dummy/config/initializers/wrap_parameters.rb
115
+ - test/dummy/config/locales/en.yml
116
+ - test/dummy/config/routes.rb
117
+ - test/dummy/config/secrets.yml
118
+ - test/dummy/db/migrate/20150911000000_create_players.rb
119
+ - test/dummy/db/migrate/20150911000002_create_users_table.rb
120
+ - test/dummy/db/migrate/20150911000003_create_doors.rb
121
+ - test/dummy/db/migrate/20150911000004_create_houses.rb
122
+ - test/dummy/db/migrate/20150911000005_add_house_reference_to_doors.rb
123
+ - test/dummy/db/schema.rb
124
+ - test/dummy/db/test.sqlite3
125
+ - test/dummy/log/development.log
126
+ - test/dummy/log/test.log
127
+ - test/dummy/public/404.html
128
+ - test/dummy/public/422.html
129
+ - test/dummy/public/500.html
130
+ - test/dummy/public/favicon.ico
131
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/0-mgT1BVDUIUlj7bJxvh7Ud3uSbC1DJf0Ok7Ehgieds.cache
132
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/5Lly_CA8DZvPhQV2jDQx-Y6P_y3Ygra9t5jfSlGhHDA.cache
133
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/9jPCqzZvmeFf31Rz8y3OEo8OQXEHVcwmLgkx0tXs-o8.cache
134
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/OI6uxGcnsKavdWTtwDAasU3wPx8QXhzBgV0X2n1KjMQ.cache
135
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/VTeG_7OBrkPzWFSh3MrTa0NSl2wOuJfTJ-XP7JqBG2w.cache
136
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/a2CYO1s9hME5T1pntwZMB7J6dYjS0zCmDxw_7zX1T14.cache
137
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/d71F8V8hdfF1jAttqkXKdizYR9PcM_zuKn_Lj_73gfE.cache
138
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/hCBjLjjeqhUCs4tdwCYlGcFA4xohMwurjmZx6OY1a7g.cache
139
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/hZi1k6tpxxCGYxRe7zY74ItcOI8gZrREOpGuA8JSpGg.cache
140
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/ifgPguUzTOUeqB0zW0GV8DL6HEvPpakIWAzNPVuCGW0.cache
141
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/j8yaH5wiyIN5a2xePYA_lQm39RgOQh27UiF5A7i6b28.cache
142
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/o2kqwqoUQ3gkgncZO1IWdVRzFD0wCSQ-HyL62cINFOU.cache
143
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/pEhaat2KBd5SrT7szC_8R1_6hK17FTpvoRFkmCRSD3M.cache
144
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/pIwp2wi1sfaJlhiwzzvyyV0hKOihhYkP6709hRtpHxg.cache
145
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/pQIgTfLmEPykNamzxdqBww21SMT7YlZlZGy6hgQ6eVE.cache
146
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/td9wUl9SLRnSSgE2ZK_VqCzLxTkFiCW50KkOhE916Wo.cache
147
+ - test/factories/doors.rb
148
+ - test/factories/houses.rb
149
+ - test/factories/players.rb
150
+ - test/factories/righter_rights.rb
151
+ - test/factories/righter_roles.rb
152
+ - test/factories/users.rb
153
+ - test/fixtures/players.yml
154
+ - test/fixtures/righter_rights.yml
155
+ - test/fixtures/righter_roles.yml
156
+ - test/fixtures/users.yml
157
+ - test/functional/doors_controller_test.rb
158
+ - test/righter_test.rb
159
+ - test/test_helper.rb
160
+ - test/unit/righter_for_resource_test.rb
161
+ - test/unit/righter_right_test.rb
162
+ - test/unit/righter_role_test.rb
163
+ - test/unit/righter_user_test.rb
164
+ homepage: ''
165
+ licenses:
166
+ - MIT
167
+ metadata: {}
168
+ post_install_message:
169
+ rdoc_options: []
170
+ require_paths:
171
+ - lib
172
+ required_ruby_version: !ruby/object:Gem::Requirement
173
+ requirements:
174
+ - - ">="
175
+ - !ruby/object:Gem::Version
176
+ version: '0'
177
+ required_rubygems_version: !ruby/object:Gem::Requirement
178
+ requirements:
179
+ - - ">="
180
+ - !ruby/object:Gem::Version
181
+ version: '0'
182
+ requirements: []
183
+ rubyforge_project:
184
+ rubygems_version: 2.4.8
185
+ signing_key:
186
+ specification_version: 4
187
+ summary: Role based authorization security engine for your user model and resources.
188
+ test_files:
189
+ - test/dummy/app/assets/javascripts/application.js
190
+ - test/dummy/app/assets/stylesheets/application.css
191
+ - test/dummy/app/controllers/application_controller.rb
192
+ - test/dummy/app/controllers/doors_controller.rb
193
+ - test/dummy/app/helpers/application_helper.rb
194
+ - test/dummy/app/models/door.rb
195
+ - test/dummy/app/models/house.rb
196
+ - test/dummy/app/models/player.rb
197
+ - test/dummy/app/models/righter_roles_player.rb
198
+ - test/dummy/app/models/user.rb
199
+ - test/dummy/app/views/doors/show.html.erb
200
+ - test/dummy/app/views/layouts/application.html.erb
201
+ - test/dummy/bin/bundle
202
+ - test/dummy/bin/rails
203
+ - test/dummy/bin/rake
204
+ - test/dummy/bin/setup
205
+ - test/dummy/config/application.rb
206
+ - test/dummy/config/boot.rb
207
+ - test/dummy/config/database.yml
208
+ - test/dummy/config/environment.rb
209
+ - test/dummy/config/environments/development.rb
210
+ - test/dummy/config/environments/production.rb
211
+ - test/dummy/config/environments/test.rb
212
+ - test/dummy/config/initializers/assets.rb
213
+ - test/dummy/config/initializers/backtrace_silencers.rb
214
+ - test/dummy/config/initializers/cookies_serializer.rb
215
+ - test/dummy/config/initializers/filter_parameter_logging.rb
216
+ - test/dummy/config/initializers/inflections.rb
217
+ - test/dummy/config/initializers/mime_types.rb
218
+ - test/dummy/config/initializers/session_store.rb
219
+ - test/dummy/config/initializers/wrap_parameters.rb
220
+ - test/dummy/config/locales/en.yml
221
+ - test/dummy/config/routes.rb
222
+ - test/dummy/config/secrets.yml
223
+ - test/dummy/config.ru
224
+ - test/dummy/db/migrate/20150911000000_create_players.rb
225
+ - test/dummy/db/migrate/20150911000002_create_users_table.rb
226
+ - test/dummy/db/migrate/20150911000003_create_doors.rb
227
+ - test/dummy/db/migrate/20150911000004_create_houses.rb
228
+ - test/dummy/db/migrate/20150911000005_add_house_reference_to_doors.rb
229
+ - test/dummy/db/schema.rb
230
+ - test/dummy/db/test.sqlite3
231
+ - test/dummy/log/development.log
232
+ - test/dummy/log/test.log
233
+ - test/dummy/public/404.html
234
+ - test/dummy/public/422.html
235
+ - test/dummy/public/500.html
236
+ - test/dummy/public/favicon.ico
237
+ - test/dummy/Rakefile
238
+ - test/dummy/README.rdoc
239
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/0-mgT1BVDUIUlj7bJxvh7Ud3uSbC1DJf0Ok7Ehgieds.cache
240
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/5Lly_CA8DZvPhQV2jDQx-Y6P_y3Ygra9t5jfSlGhHDA.cache
241
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/9jPCqzZvmeFf31Rz8y3OEo8OQXEHVcwmLgkx0tXs-o8.cache
242
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/a2CYO1s9hME5T1pntwZMB7J6dYjS0zCmDxw_7zX1T14.cache
243
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/d71F8V8hdfF1jAttqkXKdizYR9PcM_zuKn_Lj_73gfE.cache
244
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/hCBjLjjeqhUCs4tdwCYlGcFA4xohMwurjmZx6OY1a7g.cache
245
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/hZi1k6tpxxCGYxRe7zY74ItcOI8gZrREOpGuA8JSpGg.cache
246
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/ifgPguUzTOUeqB0zW0GV8DL6HEvPpakIWAzNPVuCGW0.cache
247
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/j8yaH5wiyIN5a2xePYA_lQm39RgOQh27UiF5A7i6b28.cache
248
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/o2kqwqoUQ3gkgncZO1IWdVRzFD0wCSQ-HyL62cINFOU.cache
249
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/OI6uxGcnsKavdWTtwDAasU3wPx8QXhzBgV0X2n1KjMQ.cache
250
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/pEhaat2KBd5SrT7szC_8R1_6hK17FTpvoRFkmCRSD3M.cache
251
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/pIwp2wi1sfaJlhiwzzvyyV0hKOihhYkP6709hRtpHxg.cache
252
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/pQIgTfLmEPykNamzxdqBww21SMT7YlZlZGy6hgQ6eVE.cache
253
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/td9wUl9SLRnSSgE2ZK_VqCzLxTkFiCW50KkOhE916Wo.cache
254
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/VTeG_7OBrkPzWFSh3MrTa0NSl2wOuJfTJ-XP7JqBG2w.cache
255
+ - test/factories/doors.rb
256
+ - test/factories/houses.rb
257
+ - test/factories/players.rb
258
+ - test/factories/righter_rights.rb
259
+ - test/factories/righter_roles.rb
260
+ - test/factories/users.rb
261
+ - test/fixtures/players.yml
262
+ - test/fixtures/righter_rights.yml
263
+ - test/fixtures/righter_roles.yml
264
+ - test/fixtures/users.yml
265
+ - test/functional/doors_controller_test.rb
266
+ - test/righter_test.rb
267
+ - test/test_helper.rb
268
+ - test/unit/righter_for_resource_test.rb
269
+ - test/unit/righter_right_test.rb
270
+ - test/unit/righter_role_test.rb
271
+ - test/unit/righter_user_test.rb