the_role 2.5.4 → 3.0.0

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.
Files changed (126) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +178 -526
  3. data/gem_version.rb +3 -0
  4. data/lib/the_role/version.rb +1 -3
  5. data/lib/the_role.rb +3 -41
  6. data/the_role.gemspec +5 -5
  7. metadata +20 -231
  8. data/.ruby-gemset.example +0 -1
  9. data/.ruby-version.example +0 -1
  10. data/.rvmrc.example +0 -1
  11. data/.travis.yml +0 -5
  12. data/Bye_bye_CanCan_I_got_the_Role.png +0 -0
  13. data/app/controllers/admin/role_sections_controller.rb +0 -90
  14. data/app/controllers/admin/roles_controller.rb +0 -74
  15. data/app/controllers/concerns/controller.rb +0 -23
  16. data/app/models/_templates_/role.rb +0 -3
  17. data/app/models/concerns/base.rb +0 -37
  18. data/app/models/concerns/role.rb +0 -156
  19. data/app/models/concerns/user.rb +0 -57
  20. data/config/locales/en.yml +0 -44
  21. data/config/locales/es.yml +0 -42
  22. data/config/locales/nl.yml +0 -44
  23. data/config/locales/pl.yml +0 -43
  24. data/config/locales/pt_BR.yml +0 -43
  25. data/config/locales/ru.yml +0 -43
  26. data/config/locales/zh_CN.yml +0 -42
  27. data/config/routes.rb +0 -23
  28. data/db/migrate/20111025025129_create_roles.rb +0 -23
  29. data/docs/2.1.1.png +0 -0
  30. data/lib/generators/the_role/USAGE +0 -32
  31. data/lib/generators/the_role/templates/the_role.rb +0 -11
  32. data/lib/generators/the_role/the_role_generator.rb +0 -64
  33. data/lib/tasks/roles.rake +0 -137
  34. data/lib/the_role/activerecord.rb +0 -11
  35. data/lib/the_role/config.rb +0 -30
  36. data/lib/the_role/hash.rb +0 -58
  37. data/lib/the_role/the_class_exists.rb +0 -8
  38. data/pic.png +0 -0
  39. data/spec/dummy_app/.gitignore +0 -18
  40. data/spec/dummy_app/.rspec +0 -1
  41. data/spec/dummy_app/Gemfile +0 -43
  42. data/spec/dummy_app/README.md +0 -39
  43. data/spec/dummy_app/Rakefile +0 -6
  44. data/spec/dummy_app/app/assets/images/.keep +0 -0
  45. data/spec/dummy_app/app/assets/javascripts/application.js +0 -17
  46. data/spec/dummy_app/app/assets/stylesheets/app/style.css.scss +0 -23
  47. data/spec/dummy_app/app/assets/stylesheets/application.css +0 -3
  48. data/spec/dummy_app/app/controllers/application_controller.rb +0 -38
  49. data/spec/dummy_app/app/controllers/concerns/.keep +0 -0
  50. data/spec/dummy_app/app/controllers/pages_controller.rb +0 -75
  51. data/spec/dummy_app/app/controllers/users_controller.rb +0 -32
  52. data/spec/dummy_app/app/controllers/welcome_controller.rb +0 -13
  53. data/spec/dummy_app/app/helpers/application_helper.rb +0 -2
  54. data/spec/dummy_app/app/mailers/.keep +0 -0
  55. data/spec/dummy_app/app/models/.keep +0 -0
  56. data/spec/dummy_app/app/models/concerns/.keep +0 -0
  57. data/spec/dummy_app/app/models/page.rb +0 -24
  58. data/spec/dummy_app/app/models/role.rb +0 -4
  59. data/spec/dummy_app/app/models/user.rb +0 -21
  60. data/spec/dummy_app/app/views/layouts/_current_user_info.html.haml +0 -17
  61. data/spec/dummy_app/app/views/layouts/application.html.haml +0 -68
  62. data/spec/dummy_app/app/views/pages/_form.html.haml +0 -19
  63. data/spec/dummy_app/app/views/pages/edit.html.haml +0 -7
  64. data/spec/dummy_app/app/views/pages/index.html.haml +0 -27
  65. data/spec/dummy_app/app/views/pages/manage.html.haml +0 -23
  66. data/spec/dummy_app/app/views/pages/my.html.haml +0 -10
  67. data/spec/dummy_app/app/views/pages/new.html.haml +0 -5
  68. data/spec/dummy_app/app/views/pages/show.html.haml +0 -15
  69. data/spec/dummy_app/app/views/users/edit.html.haml +0 -34
  70. data/spec/dummy_app/app/views/welcome/index.html.haml +0 -38
  71. data/spec/dummy_app/app/views/welcome/profile.html.haml +0 -2
  72. data/spec/dummy_app/bin/bundle +0 -3
  73. data/spec/dummy_app/bin/rails +0 -4
  74. data/spec/dummy_app/bin/rake +0 -4
  75. data/spec/dummy_app/config/application.rb +0 -25
  76. data/spec/dummy_app/config/boot.rb +0 -4
  77. data/spec/dummy_app/config/database.yml +0 -17
  78. data/spec/dummy_app/config/environment.rb +0 -5
  79. data/spec/dummy_app/config/environments/development.rb +0 -29
  80. data/spec/dummy_app/config/environments/production.rb +0 -80
  81. data/spec/dummy_app/config/environments/test.rb +0 -36
  82. data/spec/dummy_app/config/initializers/backtrace_silencers.rb +0 -7
  83. data/spec/dummy_app/config/initializers/devise.rb +0 -227
  84. data/spec/dummy_app/config/initializers/filter_parameter_logging.rb +0 -4
  85. data/spec/dummy_app/config/initializers/inflections.rb +0 -16
  86. data/spec/dummy_app/config/initializers/mime_types.rb +0 -5
  87. data/spec/dummy_app/config/initializers/secret_token.rb +0 -12
  88. data/spec/dummy_app/config/initializers/session_store.rb +0 -3
  89. data/spec/dummy_app/config/initializers/the_role.rb +0 -6
  90. data/spec/dummy_app/config/initializers/wrap_parameters.rb +0 -14
  91. data/spec/dummy_app/config/locales/devise.en.yml +0 -57
  92. data/spec/dummy_app/config/locales/en.yml +0 -7
  93. data/spec/dummy_app/config/locales/ru.yml +0 -4
  94. data/spec/dummy_app/config/routes.rb +0 -26
  95. data/spec/dummy_app/config.ru +0 -4
  96. data/spec/dummy_app/db/migrate/20120212061952_devise_create_users.rb +0 -63
  97. data/spec/dummy_app/db/migrate/20120212063249_create_roles.rb +0 -18
  98. data/spec/dummy_app/db/migrate/20120314061307_create_pages.rb +0 -14
  99. data/spec/dummy_app/db/schema.rb +0 -59
  100. data/spec/dummy_app/db/seeds.rb +0 -85
  101. data/spec/dummy_app/lib/assets/.keep +0 -0
  102. data/spec/dummy_app/lib/tasks/.keep +0 -0
  103. data/spec/dummy_app/lib/tasks/assets.rake +0 -15
  104. data/spec/dummy_app/lib/tasks/db_bootstrap.rake +0 -16
  105. data/spec/dummy_app/log/.keep +0 -0
  106. data/spec/dummy_app/public/404.html +0 -58
  107. data/spec/dummy_app/public/422.html +0 -58
  108. data/spec/dummy_app/public/500.html +0 -57
  109. data/spec/dummy_app/public/favicon.ico +0 -0
  110. data/spec/dummy_app/public/robots.txt +0 -5
  111. data/spec/dummy_app/spec/controllers/admin_roles_controller_spec.rb +0 -52
  112. data/spec/dummy_app/spec/controllers/pages_controller_spec.rb +0 -141
  113. data/spec/dummy_app/spec/controllers/welcome_controller_spec.rb +0 -66
  114. data/spec/dummy_app/spec/factories/page.rb +0 -6
  115. data/spec/dummy_app/spec/factories/role.rb +0 -55
  116. data/spec/dummy_app/spec/factories/user.rb +0 -11
  117. data/spec/dummy_app/spec/models/hash_spec.rb +0 -272
  118. data/spec/dummy_app/spec/models/param_process_spec.rb +0 -39
  119. data/spec/dummy_app/spec/models/role_spec.rb +0 -218
  120. data/spec/dummy_app/spec/models/user_spec.rb +0 -164
  121. data/spec/dummy_app/spec/routing/admin_roles_routing_spec.rb +0 -41
  122. data/spec/dummy_app/spec/routing/pages_routing_spec.rb +0 -35
  123. data/spec/dummy_app/spec/spec_helper.rb +0 -68
  124. data/spec/dummy_app/vendor/assets/javascripts/.keep +0 -0
  125. data/spec/dummy_app/vendor/assets/stylesheets/.keep +0 -0
  126. data/the_role.yml.teamocil.example +0 -11
@@ -1,272 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Hash do
4
- context "METHODS" do
5
- it "underscorify_keys" do
6
- Hash.new.respond_to?(:underscorify_keys).should eq true
7
- end
8
-
9
- it "underscorify_keys!" do
10
- Hash.new.respond_to?(:underscorify_keys!).should eq true
11
- end
12
-
13
- it "deep_reset" do
14
- Hash.new.respond_to?(:deep_reset).should eq true
15
- end
16
-
17
- it "deep_reset!" do
18
- Hash.new.respond_to?(:deep_reset!).should eq true
19
- end
20
-
21
- it "deep_merge" do
22
- Hash.new.respond_to?(:deep_merge).should eq true
23
- end
24
-
25
- it "deep_merge!" do
26
- Hash.new.respond_to?(:deep_merge!).should eq true
27
- end
28
- end
29
-
30
- context "deep HASH.underscorify_keys" do
31
- it "UNDERSCORIFY hash keys" do
32
- hash = {
33
- 'a b' => 1,
34
- "x y" => {
35
- :hello => 1,
36
- :'hello-world' => 1,
37
- 'good MorninG mom!' => 1
38
- }
39
- }
40
- result = {
41
- 'a_b' => 1,
42
- 'x_y' => {
43
- 'hello' => 1,
44
- 'hello_world' => 1,
45
- 'good_morning_mom' => 1
46
- }
47
- }
48
- hash.underscorify_keys.should eq result
49
- hash.should_not eq result
50
- end
51
-
52
- it "UNDERSCORIFY! hash keys" do
53
- hash = {
54
- 'a b' => 1,
55
- "x y" => {
56
- 'hello' => 1
57
- }
58
- }
59
- result = {
60
- 'a_b' => 1,
61
- 'x_y' => {
62
- 'hello' => 1
63
- }
64
- }
65
- hash.underscorify_keys!.should eq result
66
- hash.should eq result
67
- end
68
- end
69
-
70
- context "HASH.deep_reset" do
71
- before(:each) do
72
- @hash = {
73
- :pages => {
74
- :index => true,
75
- :show => true,
76
- :new => false,
77
- :edit => false,
78
- :update => false,
79
- :destroy => false
80
- },
81
- :articles => {
82
- :index => true,
83
- :show => true
84
- }
85
- }
86
- end
87
-
88
- it "DEEP RESET hash values to nil" do
89
- result = {
90
- :pages => {
91
- :index => nil,
92
- :show => nil,
93
- :new => nil,
94
- :edit => nil,
95
- :update => nil,
96
- :destroy => nil
97
- },
98
- :articles => {
99
- :index => nil,
100
- :show => nil
101
- }
102
- }
103
- hash = @hash.deep_reset
104
- hash.should eq result
105
- end
106
-
107
- it "DEEP RESET hash values to nil :test" do
108
- result = {
109
- :pages => {
110
- :index => :test,
111
- :show => :test,
112
- :new => :test,
113
- :edit => :test,
114
- :update => :test,
115
- :destroy => :test
116
- },
117
- :articles => {
118
- :index => :test,
119
- :show => :test
120
- }
121
- }
122
- hash = @hash.deep_reset(:test)
123
- hash.should eq result
124
- end
125
-
126
- it "DEEP RESET! hash values to nil" do
127
- result = {
128
- :pages => {
129
- :index => :test,
130
- :show => :test,
131
- :new => :test,
132
- :edit => :test,
133
- :update => :test,
134
- :destroy => :test
135
- },
136
- :articles => {
137
- :index => :test,
138
- :show => :test
139
- }
140
- }
141
- hash = @hash.deep_reset(:test)
142
- hash.should eq result
143
- @hash.should_not eq result
144
- end
145
- end
146
-
147
- context "DEEP RESET! with different keys types" do
148
- it "work fine" do
149
- hash = {
150
- 'pages' => {
151
- :index => true,
152
- 'edit' => true
153
- }
154
- }
155
- result = {
156
- 'pages' => {
157
- :index => nil,
158
- 'edit' => nil
159
- }
160
- }
161
- hash.deep_reset!(nil).should eq result
162
- end
163
- end
164
-
165
- context "DEEP MERGE" do
166
- it " => hashes" do
167
- first_hash = {
168
- 'pages' => {
169
- 'index' => false,
170
- 'edit' => false
171
- }
172
- }
173
-
174
- second_hash = {
175
- 'pages' => {
176
- 'index' => true,
177
- 'edit' => false,
178
- 'destroy' => true
179
- }
180
- }
181
-
182
- result = {
183
- 'pages' => {
184
- 'index' => true,
185
- 'edit' => false,
186
- 'destroy' => true
187
- }
188
- }
189
-
190
- first_hash.deep_merge!(second_hash).should eq result
191
- end
192
-
193
- it "should merge 2 hash (1st 3-lavels, 2nd - 2 levels => 2 level)" do
194
- first_hash = {
195
- 'pages' => {
196
- 'index' => false,
197
- 'edit' => {
198
- 'one' => 1,
199
- 'two' => 2
200
- }
201
- }
202
- }
203
-
204
- second_hash = {
205
- 'pages' => {
206
- 'index' => true,
207
- 'edit' => false,
208
- 'destroy' => true
209
- }
210
- }
211
-
212
- result = {
213
- 'pages' => {
214
- 'index' => true,
215
- 'edit' => false,
216
- 'destroy' => true
217
- }
218
- }
219
-
220
- first_hash.deep_merge!(second_hash).should eq result
221
- end
222
- end
223
-
224
- context "DEEP MERGE!" do
225
- before(:each) do
226
- @incoming_hash = {
227
- 'pages' => {
228
- 'edit' => true,
229
- 'manage' => true,
230
- 'destroy' => true
231
- }
232
- }
233
- @base_hash = {
234
- 'pages' => {
235
- 'index' => true,
236
- 'edit' => false,
237
- 'destroy' => false,
238
- 'banners' => false
239
- }
240
- }
241
- end
242
-
243
- it 'should reset base hash to false' do
244
- result = {
245
- 'pages' => {
246
- 'index' => nil,
247
- 'edit' => nil,
248
- 'destroy' => nil,
249
- 'banners' => nil
250
- }
251
- }
252
- @base_hash.deep_reset!
253
- @base_hash.should == result
254
- end
255
-
256
- it 'should merge 2 hashes' do
257
- result = {
258
- 'pages' => {
259
- 'index' => false,
260
- 'edit' => true,
261
- 'manage' => true,
262
- 'destroy' => true,
263
- 'banners' => false
264
- }
265
- }
266
-
267
- @base_hash.deep_reset!(false)
268
- @base_hash.deep_merge! @incoming_hash
269
- @base_hash.should == result
270
- end
271
- end
272
- end
@@ -1,39 +0,0 @@
1
- # encoding: UTF-8
2
-
3
- require 'spec_helper'
4
-
5
- describe "String to slug" do
6
- it 'string process 1' do
7
- 'hello world!'.to_slug_param(sep: '_').should eq 'hello_world'
8
- end
9
-
10
- it 'string process 2' do
11
- :hello_world!.to_slug_param(sep: '_').should eq 'hello_world'
12
- end
13
-
14
- it 'string process 3' do
15
- "hello ! world".to_slug_param(sep: '_').should eq 'hello_world'
16
- end
17
-
18
- it 'string process 4' do
19
- "HELLO $!= WorlD".to_slug_param(sep: '_').should eq 'hello_world'
20
- end
21
-
22
- it 'string process 5' do
23
- "HELLO---WorlD".to_slug_param(sep: '_').should eq 'hello_world'
24
- end
25
-
26
- it "should work with Controller Name" do
27
- ctrl = PagesController.new
28
- ctrl.controller_path
29
- ctrl.controller_path.to_slug_param(sep: '_').should eq 'pages'
30
- end
31
-
32
- it "should work with Nested Controller Name" do
33
- class Admin::PagesController < ApplicationController; end
34
- ctrl = Admin::PagesController.new
35
- ctrl.controller_path
36
-
37
- ctrl.controller_path.to_slug_param(sep: '_').should eq 'admin_pages'
38
- end
39
- end
@@ -1,218 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Role do
4
- context "Role *Create* methods" do
5
- it "New/Create invalid" do
6
- role = Role.new
7
- role.save.should be_false
8
-
9
- role.should have(1).error_on(:name)
10
- role.should have(1).error_on(:title)
11
- role.should have(1).error_on(:description)
12
- end
13
-
14
- it "New/Create valid, without Role hash" do
15
- role = Role.new
16
-
17
- role.name = :user
18
- role.title = :user_title
19
- role.description = :role_description
20
-
21
- role.save.should be_true
22
- end
23
-
24
- it "New/Create valid, without Role hash (2)" do
25
- Role.new(
26
- name: :user,
27
- title: :user_title,
28
- description: :role_description
29
- ).save.should be_true
30
- end
31
-
32
- it "New/Create, without Role hash, default Role hash value" do
33
- role = FactoryGirl.create :role_without_rules
34
- role.the_role.should == "{}"
35
- role.to_hash.should == {}
36
- end
37
-
38
- it "New/Create, role methods result types" do
39
- role = FactoryGirl.create :role_without_rules
40
- role.the_role.should be_an_instance_of String
41
- role.to_hash.should be_an_instance_of Hash
42
- end
43
- end
44
-
45
- context "Role *Section/Rule create* methods" do
46
- before(:each) do
47
- @role = FactoryGirl.create :role_without_rules
48
- end
49
-
50
- it "should have empty Role hash" do
51
- @role.to_hash.should == {}
52
- end
53
-
54
- it "Create section" do
55
- @role.create_section(:articles)
56
- @role.to_hash.should == { "articles" => {} }
57
- end
58
-
59
- it "Create rule (with section)" do
60
- @role.create_section(:articles)
61
- @role.create_rule(:articles, :index)
62
- @role.to_hash.should == { "articles" => { "index" => false } }
63
- end
64
-
65
- it "Create rule (without section)" do
66
- @role.create_rule(:articles, :index)
67
- @role.to_hash.should == { "articles" => { "index" => false } }
68
- end
69
- end
70
-
71
- context "*has?* is aliace of *has_role?*" do
72
- before(:each) do
73
- @role = FactoryGirl.create :role_user
74
- end
75
-
76
- it "aliace methods" do
77
- @role.has?(:pages, :index).should be_true
78
- @role.has_role?(:pages, :index).should be_true
79
-
80
- @role.has?(:pages, :secret).should be_false
81
- @role.has_role?(:pages, :secret).should be_false
82
- end
83
- end
84
-
85
- context "Rule *On/Off* methods" do
86
- before(:each) do
87
- @role = FactoryGirl.create :role_user
88
- end
89
-
90
- it "has access to pages/index" do
91
- @role.has_role?(:pages, :index).should be_true
92
- end
93
-
94
- it "set pages/index on false" do
95
- @role.rule_off(:pages, :index)
96
- @role.has_role?(:pages, :index).should be_false
97
- end
98
-
99
- it "has no access to pages/secret" do
100
- @role.has_role?(:pages, :secret).should be_false
101
- end
102
-
103
- it "set pages/secret on true" do
104
- @role.rule_on(:pages, :secret)
105
- @role.has_role?(:pages, :secret).should be_true
106
- end
107
- end
108
-
109
- context "Class Methods" do
110
- before(:each) do
111
- @role = FactoryGirl.create :role_user
112
- end
113
-
114
- it "Role.with_name(:name) method" do
115
- Role.with_name(:user).should be_an_instance_of Role
116
- Role.with_name('user').should be_an_instance_of Role
117
-
118
- Role.with_name(:moderator).should be_nil
119
- Role.with_name('moderator').should be_nil
120
- end
121
- end
122
-
123
- context "*Delete* methods" do
124
- before(:each) do
125
- @role = FactoryGirl.create :role_user
126
- end
127
-
128
- it "*has_section?* method" do
129
- @role.has_section?(:pages).should be_true
130
- @role.has_section?(:articles).should be_false
131
- end
132
-
133
- it "has pages section" do
134
- @role.to_hash['pages'].should be_an_instance_of Hash
135
- end
136
-
137
- it "has pages/index value" do
138
- @role.to_hash['pages']['index'].should be_true
139
- end
140
-
141
- it "delete rule pages/index" do
142
- @role.delete_rule(:pages, :index)
143
- @role.to_hash['pages']['index'].should be_nil
144
- end
145
-
146
- it "delete section pages" do
147
- @role.delete_section(:pages)
148
- @role.to_hash['pages'].should be_nil
149
- end
150
- end
151
-
152
- context "*helper* methods" do
153
- before(:each) do
154
- @role = FactoryGirl.create :role_without_rules
155
- end
156
-
157
- it "to_hash on empty rules set" do
158
- @role.to_hash.should == {}
159
- end
160
-
161
- it "to_json on empty rules set" do
162
- @role.to_json.should == "{}"
163
- end
164
- end
165
-
166
- context "Update method" do
167
- before(:each) do
168
- @role = FactoryGirl.create :role_user
169
- end
170
-
171
- it "should has true rules" do
172
- @role.has?(:pages, :index).should be_true
173
- @role.has?(:pages, :edit).should be_true
174
- @role.has?(:pages, :update).should be_true
175
- @role.has?(:pages, :secret).should be_false
176
-
177
- @role.has?(:articles, :index).should be_false
178
- end
179
-
180
- it "should has true rules" do
181
- @role.update_role({ articles: { index: true } })
182
-
183
- @role.has?(:pages, :index).should be_false
184
- @role.has?(:pages, :edit).should be_false
185
- @role.has?(:pages, :update).should be_false
186
- @role.has?(:pages, :secret).should be_false
187
-
188
- @role.has?(:articles, :index).should be_true
189
- end
190
-
191
- it "should has any rules 1" do
192
- @role.has?(:pages, :index).should be_true
193
- @role.has?(:pages, :update).should be_true
194
-
195
- @role.any?({ pages: :index }).should be_true
196
- @role.any?({ pages: :update }).should be_true
197
- @role.any?({ pages: :index, pages: :update}).should be_true
198
- end
199
-
200
- it "should has any rules 2" do
201
- @role.has?(:pages, :index).should be_true
202
- @role.has?(:articles, :index).should be_false
203
-
204
- @role.any?({ pages: :index }).should be_true
205
- @role.any?({ articles: :index }).should be_false
206
-
207
- @role.any?({ articles: :index }).should be_false
208
- @role.any?({ pages: :index, articles: :index}).should be_true
209
- @role.any?({ pages: :index, pages: :update}).should be_true
210
- end
211
-
212
- it "should has any rules 3, easy syntaxis" do
213
- @role.any?(articles: :index).should be_false
214
- @role.any?(pages: :index, articles: :index).should be_true
215
- @role.any?(pages: :index, pages: :update).should be_true
216
- end
217
- end
218
- end
@@ -1,164 +0,0 @@
1
- # encoding: UTF-8
2
-
3
- require 'spec_helper'
4
-
5
- describe User do
6
- describe "Owner check for User and object" do
7
- context "Regular user" do
8
- before(:each) do
9
- @user_1 = FactoryGirl.create(:user)
10
- @user_2 = FactoryGirl.create(:user)
11
-
12
- @user_1_page = FactoryGirl.create(:page, user: @user_1)
13
- @user_2_page = FactoryGirl.create(:page, user: @user_2)
14
- end
15
-
16
- it 'should have test varaibles' do
17
- @user_1.should be_instance_of User
18
- @user_2.should be_instance_of User
19
-
20
- @user_1_page.should be_instance_of Page
21
- @user_2_page.should be_instance_of Page
22
- end
23
-
24
- it 'should be owner of page' do
25
- @user_1.owner?(@user_1_page).should be_true
26
- @user_2.owner?(@user_2_page).should be_true
27
- end
28
-
29
- it 'should not be owner of page' do
30
- @user_1.owner?(@user_2_page).should be_false
31
- @user_2.owner?(@user_1_page).should be_false
32
- end
33
- end
34
-
35
- context "Moderator" do
36
- before(:each) do
37
- mrole = FactoryGirl.create(:role_moderator)
38
-
39
- @moderator = FactoryGirl.create(:user, role: mrole)
40
- @user = FactoryGirl.create(:user)
41
-
42
- @moderator_page = FactoryGirl.create(:page, user: @moderator)
43
- @user_page = FactoryGirl.create(:page, user: @user)
44
- end
45
-
46
- it 'Moderator is owner of any Page' do
47
- @moderator.owner?(@moderator_page).should be_true
48
- @moderator.owner?(@user_page).should be_true
49
- end
50
-
51
- it 'User is owner of his Pages' do
52
- @user.owner?(@user_page).should be_true
53
- @user.owner?(@moderator_page).should be_false
54
- end
55
- end
56
-
57
- context "Admin" do
58
- # not important. to implement later
59
- end
60
-
61
- # context "Custom Page relation to User" do
62
- # before(:each) do
63
- # Page.class_eval do
64
- # belongs_to :user, class_name: User, foreign_key: 'person_id'
65
- # end
66
-
67
- # @user = FactoryGirl.create(:user)
68
- # @page = FactoryGirl.create(:page, user: @user)
69
- # end
70
-
71
- # it 'relation via person_id' do
72
- # @page.user_id.should eq @user.id
73
- # @page.person_id.should eq @user.id
74
- # end
75
- # end
76
- end
77
-
78
- describe "Create user without any Role" do
79
- before(:each) do
80
- FactoryGirl.create(:user)
81
- @user = User.first
82
- end
83
-
84
- it "Create test user" do
85
- User.count.should be 1
86
- end
87
-
88
- it "User have not any role" do
89
- @user.role.should be_nil
90
- end
91
-
92
- it "User should gives false on any request" do
93
- @user.has_role?(:pages, :index).should be_false
94
- @user.has_role?(:moderator, :pages).should be_false
95
- end
96
- end
97
-
98
- describe "Create user with default Role" do
99
- before(:each) do
100
- TheRole.config.default_user_role = :user
101
- FactoryGirl.create(:role_user)
102
- FactoryGirl.create(:user)
103
- @user = User.first
104
- end
105
-
106
- it "User and Role should exists" do
107
- Role.count.should be 1
108
- User.count.should be 1
109
- end
110
-
111
- it "Role should nave name :user" do
112
- Role.first.name.should eq 'user'
113
- end
114
-
115
- it "User should have default Role" do
116
- @user.role.should_not be_nil
117
- end
118
-
119
- it "User has Role for Pages" do
120
- @user.has_role?(:pages, :index).should be_true
121
- @user.has_role?(:pages, :destroy).should be_true
122
- end
123
-
124
- it "User has disabled rule" do
125
- @user.has_role?(:pages, :secret).should be_false
126
- end
127
-
128
- it "User try to have access to undefined rule" do
129
- @user.has_role?(:pages, :wrong_name).should be_false
130
- end
131
-
132
- it "User has not Role for Atricles" do
133
- @user.has_role?(:articles, :index).should be_false
134
- end
135
-
136
- # Any
137
- it "should has any rules 1" do
138
- @user.has_role?(:pages, :index).should be_true
139
- @user.has_role?(:pages, :update).should be_true
140
-
141
- @user.any_role?({ pages: :index }).should be_true
142
- @user.any_role?({ pages: :update }).should be_true
143
- @user.any_role?({ pages: :index, pages: :update}).should be_true
144
- end
145
-
146
- it "should has any rules 2" do
147
- @user.has_role?(:pages, :index).should be_true
148
- @user.has_role?(:articles, :index).should be_false
149
-
150
- @user.any_role?({ pages: :index }).should be_true
151
- @user.any_role?({ articles: :index }).should be_false
152
-
153
- @user.any_role?({ articles: :index }).should be_false
154
- @user.any_role?({ pages: :index, articles: :index}).should be_true
155
- @user.any_role?({ pages: :index, pages: :update}).should be_true
156
- end
157
-
158
- it "should has any rules 3, easy syntaxis" do
159
- @user.any_role?(articles: :index).should be_false
160
- @user.any_role?(pages: :index, articles: :index).should be_true
161
- @user.any_role?(pages: :index, pages: :update).should be_true
162
- end
163
- end
164
- end