fortress 0.1.0 → 0.2.0

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: 6575dc9b3e01e0bb6fd8178ab34ab5a0441ef2d0
4
- data.tar.gz: b73945d1bf417c3e977ce3eb7f55c9fec5d1a92e
3
+ metadata.gz: 0f461ea5452cda1e8c528abce340f785daf5563a
4
+ data.tar.gz: fdc2d34806a35bbe9d1b5783c8975aa0ce9c9ae1
5
5
  SHA512:
6
- metadata.gz: e1125d2717e5beaa4be6ede6121b01342d71ae1a38edf429b6cc151dad1c6321625ef04f85d24dafd86b4ad50462d1e30bfa7742bbf4f1c9cb3d36cbbc896d07
7
- data.tar.gz: c80ff15137ecab5375bed56a4081a5d7a9054a1890391d54990ddba2dd58c71fb6c1cc4783235d0fa806269aa376e3344b582ee11e666f32b7392f337165b521
6
+ metadata.gz: 79a48a060e3eb1c14ace5b630bcbeb580744d49f20e182440ec8303be1f075743773ced8615858433ce25f942bd0c77984bfd9318174e085f2a055fdb27b0947
7
+ data.tar.gz: 17a71c6918265fcdc18ddfd06e6dc35406ccd82ef0277e478a7ecfd33c396a9469284a0f5b8be1c7cf0bc3eb53b72ab7dd8f96fa5cac7b3e09dee97e1e00182e
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Fortress
2
2
 
3
- [![Build Status](https://travis-ci.org/YourCursus/fortress.svg?branch=master)](https://travis-ci.org/YourCursus/fortress)
3
+ [![Build Status](https://travis-ci.org/YourCursus/fortress.svg?branch=master)](https://travis-ci.org/YourCursus/fortress) [![Code Climate](https://codeclimate.com/github/YourCursus/fortress/badges/gpa.svg)](https://codeclimate.com/github/YourCursus/fortress) [![Gem Version](https://badge.fury.io/rb/fortress.svg)](http://badge.fury.io/rb/fortress)
4
4
 
5
5
  Implement the simple but powerful protection: close everything and open the
6
6
  access explecitely.
data/Rakefile CHANGED
@@ -1,6 +1,17 @@
1
1
  require 'bundler/gem_tasks'
2
2
  require 'rspec/core/rake_task'
3
3
 
4
+ # Imported Rails rake task
5
+ desc 'Print out all defined routes in match order, with names.'
6
+ task :routes do
7
+ $LOAD_PATH.unshift('spec/')
8
+ require 'fixtures/application'
9
+ all_routes = Rails.application.routes.routes
10
+ require 'action_dispatch/routing/inspector'
11
+ inspector = ActionDispatch::Routing::RoutesInspector.new(all_routes)
12
+ puts inspector.format(ActionDispatch::Routing::ConsoleFormatter.new)
13
+ end
14
+
4
15
  RSpec::Core::RakeTask.new
5
16
 
6
17
  task default: :spec
@@ -1,3 +1,4 @@
1
+ require 'fortress/configuration'
1
2
  require 'fortress/controller'
2
3
  require 'fortress/controller_interface'
3
4
  require 'fortress/mechanism'
@@ -0,0 +1,44 @@
1
+ module Fortress
2
+ class << self
3
+ attr_accessor :configuration
4
+ end
5
+
6
+ def self.configure
7
+ self.configuration ||= Configuration.new
8
+
9
+ yield(configuration)
10
+
11
+ apply_configuration!
12
+ end
13
+
14
+ class Configuration
15
+ attr_reader :options
16
+
17
+ def externals=(value)
18
+ return unless value
19
+
20
+ @options = { externals: externals_from(value) }
21
+ end
22
+
23
+ private
24
+
25
+ def externals_from(value)
26
+ case
27
+ when value.is_a?(String) then [value]
28
+ when value.is_a?(Array) then value
29
+ end
30
+ end
31
+ end
32
+
33
+ private
34
+
35
+ def self.apply_configuration!
36
+ if configuration.options.try(:key?, :externals)
37
+ fortress_allow_externals!(configuration.options[:externals])
38
+ end
39
+ end
40
+
41
+ def self.fortress_allow_externals!(externals)
42
+ externals.each { |name| Mechanism.authorise!(name, :all) }
43
+ end
44
+ end
@@ -29,8 +29,21 @@ module Fortress
29
29
  # You can re-define it within the ApplicationController of you rails
30
30
  # application.
31
31
  def access_deny
32
- flash[:error] = 'You are not authorised to access this page.'
33
- redirect_to Rails.application.routes.url_helpers.root_url
32
+ message = 'You are not authorised to access this page.'
33
+ respond_to do |format|
34
+ format.html do
35
+ flash[:error] = message
36
+ redirect_to root_url
37
+ end
38
+ format.json do
39
+ self.status = :unauthorized
40
+ self.response_body = { error: message }.to_json
41
+ end
42
+ format.xml do
43
+ self.status = :unauthorized
44
+ self.response_body = { error: message }.to_xml
45
+ end
46
+ end
34
47
  end
35
48
 
36
49
  #
@@ -4,5 +4,5 @@
4
4
  # @author zedtux
5
5
  #
6
6
  module Fortress
7
- VERSION = '0.1.0'
7
+ VERSION = '0.2.0'
8
8
  end
@@ -14,12 +14,20 @@ module Rails
14
14
  {}
15
15
  end
16
16
 
17
+ # Required in order to have `rake routes` working
18
+ def config
19
+ OpenStruct.new(assets: OpenStruct.new(prefix: nil))
20
+ end
21
+
17
22
  def routes
18
23
  return @routes if defined?(@routes)
19
24
  @routes = ActionDispatch::Routing::RouteSet.new
20
25
  @routes.draw do
21
26
  root 'home#index'
22
27
  resources :guitars
28
+ resources :concerts, only: :index
29
+ # Represents an external controller
30
+ resources :stages
23
31
  end
24
32
  @routes
25
33
  end
@@ -27,3 +27,15 @@ class GuitarsController < TestController
27
27
 
28
28
  def destroy; end
29
29
  end
30
+
31
+ #
32
+ # Controller with a custom access_deny method
33
+ #
34
+ class ConcertsController < TestController
35
+ def index; end
36
+
37
+ def access_deny
38
+ flash[:error] = 'Accès refusé'
39
+ redirect_to '/another/route'
40
+ end
41
+ end
@@ -0,0 +1,54 @@
1
+ require 'spec_helper'
2
+
3
+ describe GuitarsController, type: :controller do
4
+ let(:default_message) { 'You are not authorised to access this page.' }
5
+ describe 'access_deny' do
6
+ it 'should have a default method' do
7
+ get :index
8
+
9
+ expect(response).to redirect_to(root_url)
10
+ expect(flash[:error]).to eql(default_message)
11
+ end
12
+ describe 'respond with the same format (YourCursus/fortress#2)' do
13
+ context 'with JSON' do
14
+ it 'should respond with a JSON message' do
15
+ json = { error: default_message }.to_json
16
+
17
+ get :index, format: :json
18
+
19
+ expect(response.status).to eql(401)
20
+ expect(response.body).to eql(json)
21
+ end
22
+ end
23
+ context 'with XML' do
24
+ it 'should respond with a XML message' do
25
+ xml = { error: default_message }.to_xml
26
+
27
+ get :index, format: :xml
28
+
29
+ expect(response.status).to eql(401)
30
+ expect(response.body).to eql(xml)
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
36
+
37
+ describe ConcertsController, type: :controller do
38
+ describe 'access_deny' do
39
+ it 'flash message should be overriden' do
40
+ new_message = 'Accès refusé'
41
+
42
+ get :index
43
+
44
+ expect(flash[:error]).to eql(new_message)
45
+ end
46
+ it 'redirection should be overriden' do
47
+ new_route = '/another/route'
48
+
49
+ get :index
50
+
51
+ expect(response).to redirect_to(new_route)
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,37 @@
1
+ require 'spec_helper'
2
+
3
+ describe Fortress::Configuration do
4
+ describe 'default configuration' do
5
+ it 'should keep a blank configuration' do
6
+ expect(Fortress.configuration).to be_nil
7
+ end
8
+ end
9
+ describe 'externals option' do
10
+ context 'passing nil' do
11
+ before { Fortress.configure { |config| config.externals = nil } }
12
+ it 'should keep a blank configuration' do
13
+ expect(Fortress.configuration.options).to be_nil
14
+ end
15
+ end
16
+ context 'passing a String' do
17
+ before do
18
+ Fortress.configure { |config| config.externals = 'IronMaiden' }
19
+ end
20
+ it 'should add the externals key as an Array with the given string' do
21
+ options = { externals: ['IronMaiden'] }
22
+ expect(Fortress.configuration.options).to eql(options)
23
+ end
24
+ end
25
+ context 'passing an Array of String' do
26
+ before do
27
+ Fortress.configure do |config|
28
+ config.externals = %w(Rocksmith IronMaiden Pantera)
29
+ end
30
+ end
31
+ it 'should add the externals key as an Array with the given string' do
32
+ options = { externals: %w(Rocksmith IronMaiden Pantera) }
33
+ expect(Fortress.configuration.options).to eql(options)
34
+ end
35
+ end
36
+ end
37
+ end
@@ -1,10 +1,6 @@
1
1
  require 'spec_helper'
2
- require 'fixtures/application'
3
- require 'fixtures/controllers'
4
2
 
5
3
  describe GuitarsController, type: :controller do
6
- before { @flash_error = 'You are not authorised to access this page.' }
7
-
8
4
  it 'should have a before filter `:prevent_access!`' do
9
5
  before_filters = subject._process_action_callbacks.map do |callback|
10
6
  callback.filter if callback.kind == :before
@@ -20,7 +16,7 @@ describe GuitarsController, type: :controller do
20
16
  get :index
21
17
 
22
18
  expect(response).to redirect_to(root_url)
23
- expect(flash[:error]).to eql(@flash_error)
19
+ expect(flash[:error]).to be_present
24
20
  end
25
21
  end
26
22
  describe 'GET show' do
@@ -28,7 +24,7 @@ describe GuitarsController, type: :controller do
28
24
  get :show, id: 1
29
25
 
30
26
  expect(response).to redirect_to(root_url)
31
- expect(flash[:error]).to eql(@flash_error)
27
+ expect(flash[:error]).to be_present
32
28
  end
33
29
  end
34
30
  describe 'GET new' do
@@ -36,7 +32,7 @@ describe GuitarsController, type: :controller do
36
32
  get :new
37
33
 
38
34
  expect(response).to redirect_to(root_url)
39
- expect(flash[:error]).to eql(@flash_error)
35
+ expect(flash[:error]).to be_present
40
36
  end
41
37
  end
42
38
  describe 'POST create' do
@@ -44,7 +40,7 @@ describe GuitarsController, type: :controller do
44
40
  post :create
45
41
 
46
42
  expect(response).to redirect_to(root_url)
47
- expect(flash[:error]).to eql(@flash_error)
43
+ expect(flash[:error]).to be_present
48
44
  end
49
45
  end
50
46
  describe 'GET edit' do
@@ -52,7 +48,7 @@ describe GuitarsController, type: :controller do
52
48
  post :edit, id: 1
53
49
 
54
50
  expect(response).to redirect_to(root_url)
55
- expect(flash[:error]).to eql(@flash_error)
51
+ expect(flash[:error]).to be_present
56
52
  end
57
53
  end
58
54
  describe 'PUT update' do
@@ -60,7 +56,7 @@ describe GuitarsController, type: :controller do
60
56
  put :update, id: 1
61
57
 
62
58
  expect(response).to redirect_to(root_url)
63
- expect(flash[:error]).to eql(@flash_error)
59
+ expect(flash[:error]).to be_present
64
60
  end
65
61
  end
66
62
  describe 'PATCH update' do
@@ -68,7 +64,7 @@ describe GuitarsController, type: :controller do
68
64
  patch :update, id: 1
69
65
 
70
66
  expect(response).to redirect_to(root_url)
71
- expect(flash[:error]).to eql(@flash_error)
67
+ expect(flash[:error]).to be_present
72
68
  end
73
69
  end
74
70
  describe 'POST destroy' do
@@ -76,7 +72,7 @@ describe GuitarsController, type: :controller do
76
72
  post :destroy, id: 1
77
73
 
78
74
  expect(response).to redirect_to(root_url)
79
- expect(flash[:error]).to eql(@flash_error)
75
+ expect(flash[:error]).to be_present
80
76
  end
81
77
  end
82
78
  end
@@ -100,7 +96,7 @@ describe GuitarsController, type: :controller do
100
96
  get :show, id: 1
101
97
 
102
98
  expect(response).to redirect_to(root_url)
103
- expect(flash[:error]).to eql(@flash_error)
99
+ expect(flash[:error]).to be_present
104
100
  end
105
101
  end
106
102
  describe 'GET new' do
@@ -108,7 +104,7 @@ describe GuitarsController, type: :controller do
108
104
  get :new
109
105
 
110
106
  expect(response).to redirect_to(root_url)
111
- expect(flash[:error]).to eql(@flash_error)
107
+ expect(flash[:error]).to be_present
112
108
  end
113
109
  end
114
110
  describe 'POST create' do
@@ -116,7 +112,7 @@ describe GuitarsController, type: :controller do
116
112
  post :create
117
113
 
118
114
  expect(response).to redirect_to(root_url)
119
- expect(flash[:error]).to eql(@flash_error)
115
+ expect(flash[:error]).to be_present
120
116
  end
121
117
  end
122
118
  describe 'GET edit' do
@@ -124,7 +120,7 @@ describe GuitarsController, type: :controller do
124
120
  post :edit, id: 1
125
121
 
126
122
  expect(response).to redirect_to(root_url)
127
- expect(flash[:error]).to eql(@flash_error)
123
+ expect(flash[:error]).to be_present
128
124
  end
129
125
  end
130
126
  describe 'PUT update' do
@@ -132,7 +128,7 @@ describe GuitarsController, type: :controller do
132
128
  put :update, id: 1
133
129
 
134
130
  expect(response).to redirect_to(root_url)
135
- expect(flash[:error]).to eql(@flash_error)
131
+ expect(flash[:error]).to be_present
136
132
  end
137
133
  end
138
134
  describe 'PATCH update' do
@@ -140,7 +136,7 @@ describe GuitarsController, type: :controller do
140
136
  patch :update, id: 1
141
137
 
142
138
  expect(response).to redirect_to(root_url)
143
- expect(flash[:error]).to eql(@flash_error)
139
+ expect(flash[:error]).to be_present
144
140
  end
145
141
  end
146
142
  describe 'POST destroy' do
@@ -148,7 +144,7 @@ describe GuitarsController, type: :controller do
148
144
  post :destroy, id: 1
149
145
 
150
146
  expect(response).to redirect_to(root_url)
151
- expect(flash[:error]).to eql(@flash_error)
147
+ expect(flash[:error]).to be_present
152
148
  end
153
149
  end
154
150
  end
@@ -181,7 +177,7 @@ describe GuitarsController, type: :controller do
181
177
  get :new
182
178
 
183
179
  expect(response).to redirect_to(root_url)
184
- expect(flash[:error]).to eql(@flash_error)
180
+ expect(flash[:error]).to be_present
185
181
  end
186
182
  end
187
183
  describe 'POST create' do
@@ -189,7 +185,7 @@ describe GuitarsController, type: :controller do
189
185
  post :create
190
186
 
191
187
  expect(response).to redirect_to(root_url)
192
- expect(flash[:error]).to eql(@flash_error)
188
+ expect(flash[:error]).to be_present
193
189
  end
194
190
  end
195
191
  describe 'GET edit' do
@@ -197,7 +193,7 @@ describe GuitarsController, type: :controller do
197
193
  post :edit, id: 1
198
194
 
199
195
  expect(response).to redirect_to(root_url)
200
- expect(flash[:error]).to eql(@flash_error)
196
+ expect(flash[:error]).to be_present
201
197
  end
202
198
  end
203
199
  describe 'PUT update' do
@@ -205,7 +201,7 @@ describe GuitarsController, type: :controller do
205
201
  put :update, id: 1
206
202
 
207
203
  expect(response).to redirect_to(root_url)
208
- expect(flash[:error]).to eql(@flash_error)
204
+ expect(flash[:error]).to be_present
209
205
  end
210
206
  end
211
207
  describe 'PATCH update' do
@@ -213,7 +209,7 @@ describe GuitarsController, type: :controller do
213
209
  patch :update, id: 1
214
210
 
215
211
  expect(response).to redirect_to(root_url)
216
- expect(flash[:error]).to eql(@flash_error)
212
+ expect(flash[:error]).to be_present
217
213
  end
218
214
  end
219
215
  describe 'POST destroy' do
@@ -221,7 +217,7 @@ describe GuitarsController, type: :controller do
221
217
  post :destroy, id: 1
222
218
 
223
219
  expect(response).to redirect_to(root_url)
224
- expect(flash[:error]).to eql(@flash_error)
220
+ expect(flash[:error]).to be_present
225
221
  end
226
222
  end
227
223
  end
@@ -342,7 +338,7 @@ describe GuitarsController, type: :controller do
342
338
  post :create
343
339
 
344
340
  expect(response).to redirect_to(root_url)
345
- expect(flash[:error]).to eql(@flash_error)
341
+ expect(flash[:error]).to be_present
346
342
  end
347
343
  end
348
344
  describe 'GET edit' do
@@ -402,7 +398,7 @@ describe GuitarsController, type: :controller do
402
398
  get :show, id: 1
403
399
 
404
400
  expect(response).to redirect_to(root_url)
405
- expect(flash[:error]).to eql(@flash_error)
401
+ expect(flash[:error]).to be_present
406
402
  end
407
403
  end
408
404
  describe 'GET new' do
@@ -410,7 +406,7 @@ describe GuitarsController, type: :controller do
410
406
  get :new
411
407
 
412
408
  expect(response).to redirect_to(root_url)
413
- expect(flash[:error]).to eql(@flash_error)
409
+ expect(flash[:error]).to be_present
414
410
  end
415
411
  end
416
412
  describe 'POST create' do
@@ -418,7 +414,7 @@ describe GuitarsController, type: :controller do
418
414
  post :create
419
415
 
420
416
  expect(response).to redirect_to(root_url)
421
- expect(flash[:error]).to eql(@flash_error)
417
+ expect(flash[:error]).to be_present
422
418
  end
423
419
  end
424
420
  describe 'GET edit' do
@@ -426,7 +422,7 @@ describe GuitarsController, type: :controller do
426
422
  post :edit, id: 1
427
423
 
428
424
  expect(response).to redirect_to(root_url)
429
- expect(flash[:error]).to eql(@flash_error)
425
+ expect(flash[:error]).to be_present
430
426
  end
431
427
  end
432
428
  describe 'PUT update' do
@@ -434,7 +430,7 @@ describe GuitarsController, type: :controller do
434
430
  put :update, id: 1
435
431
 
436
432
  expect(response).to redirect_to(root_url)
437
- expect(flash[:error]).to eql(@flash_error)
433
+ expect(flash[:error]).to be_present
438
434
  end
439
435
  end
440
436
  describe 'PATCH update' do
@@ -442,7 +438,7 @@ describe GuitarsController, type: :controller do
442
438
  patch :update, id: 1
443
439
 
444
440
  expect(response).to redirect_to(root_url)
445
- expect(flash[:error]).to eql(@flash_error)
441
+ expect(flash[:error]).to be_present
446
442
  end
447
443
  end
448
444
  describe 'POST destroy' do
@@ -450,7 +446,7 @@ describe GuitarsController, type: :controller do
450
446
  post :destroy, id: 1
451
447
 
452
448
  expect(response).to redirect_to(root_url)
453
- expect(flash[:error]).to eql(@flash_error)
449
+ expect(flash[:error]).to be_present
454
450
  end
455
451
  end
456
452
  end
@@ -465,7 +461,7 @@ describe GuitarsController, type: :controller do
465
461
  get :index
466
462
 
467
463
  expect(response).to redirect_to(root_url)
468
- expect(flash[:error]).to eql(@flash_error)
464
+ expect(flash[:error]).to be_present
469
465
  end
470
466
  end
471
467
  describe 'GET show' do
@@ -473,7 +469,7 @@ describe GuitarsController, type: :controller do
473
469
  get :show, id: 1
474
470
 
475
471
  expect(response).to redirect_to(root_url)
476
- expect(flash[:error]).to eql(@flash_error)
472
+ expect(flash[:error]).to be_present
477
473
  end
478
474
  end
479
475
  describe 'GET new' do
@@ -481,7 +477,7 @@ describe GuitarsController, type: :controller do
481
477
  get :new
482
478
 
483
479
  expect(response).to redirect_to(root_url)
484
- expect(flash[:error]).to eql(@flash_error)
480
+ expect(flash[:error]).to be_present
485
481
  end
486
482
  end
487
483
  describe 'POST create' do
@@ -489,7 +485,7 @@ describe GuitarsController, type: :controller do
489
485
  post :create
490
486
 
491
487
  expect(response).to redirect_to(root_url)
492
- expect(flash[:error]).to eql(@flash_error)
488
+ expect(flash[:error]).to be_present
493
489
  end
494
490
  end
495
491
  describe 'GET edit' do
@@ -497,7 +493,7 @@ describe GuitarsController, type: :controller do
497
493
  post :edit, id: 1
498
494
 
499
495
  expect(response).to redirect_to(root_url)
500
- expect(flash[:error]).to eql(@flash_error)
496
+ expect(flash[:error]).to be_present
501
497
  end
502
498
  end
503
499
  describe 'PUT update' do
@@ -505,7 +501,7 @@ describe GuitarsController, type: :controller do
505
501
  put :update, id: 1
506
502
 
507
503
  expect(response).to redirect_to(root_url)
508
- expect(flash[:error]).to eql(@flash_error)
504
+ expect(flash[:error]).to be_present
509
505
  end
510
506
  end
511
507
  describe 'PATCH update' do
@@ -513,7 +509,7 @@ describe GuitarsController, type: :controller do
513
509
  patch :update, id: 1
514
510
 
515
511
  expect(response).to redirect_to(root_url)
516
- expect(flash[:error]).to eql(@flash_error)
512
+ expect(flash[:error]).to be_present
517
513
  end
518
514
  end
519
515
  describe 'POST destroy' do
@@ -521,7 +517,7 @@ describe GuitarsController, type: :controller do
521
517
  post :destroy, id: 1
522
518
 
523
519
  expect(response).to redirect_to(root_url)
524
- expect(flash[:error]).to eql(@flash_error)
520
+ expect(flash[:error]).to be_present
525
521
  end
526
522
  end
527
523
  end
@@ -0,0 +1,83 @@
1
+ require 'spec_helper'
2
+
3
+ class StagesController < TestController
4
+ def index; end
5
+
6
+ def show; end
7
+
8
+ def new; end
9
+
10
+ def create; end
11
+
12
+ def edit; end
13
+
14
+ def update; end
15
+
16
+ def destroy; end
17
+ end
18
+
19
+ describe 'Allow adding manually controller names (YourCursus/fortress#3)' do
20
+ describe StagesController, type: :controller do
21
+ describe 'giving a controller name to config.externals' do
22
+ before do
23
+ Fortress.configure { |config| config.externals = 'StagesController' }
24
+ end
25
+ it 'should allow the index controller action' do
26
+ get :index
27
+
28
+ expect(response).to_not redirect_to(root_url)
29
+ expect(flash[:error]).to be_nil
30
+ expect(response).to have_http_status(:ok)
31
+ end
32
+ it 'should allow the show controller action' do
33
+ get :show, id: 1
34
+
35
+ expect(response).to_not redirect_to(root_url)
36
+ expect(flash[:error]).to be_nil
37
+ expect(response).to have_http_status(:ok)
38
+ end
39
+ it 'should allow the new controller action' do
40
+ get :new
41
+
42
+ expect(response).to_not redirect_to(root_url)
43
+ expect(flash[:error]).to be_nil
44
+ expect(response).to have_http_status(:ok)
45
+ end
46
+ it 'should allow the create controller action' do
47
+ post :create
48
+
49
+ expect(response).to_not redirect_to(root_url)
50
+ expect(flash[:error]).to be_nil
51
+ expect(response).to have_http_status(:ok)
52
+ end
53
+ it 'should allow the edit controller action' do
54
+ get :edit, id: 1
55
+
56
+ expect(response).to_not redirect_to(root_url)
57
+ expect(flash[:error]).to be_nil
58
+ expect(response).to have_http_status(:ok)
59
+ end
60
+ it 'should allow the update (PUT) controller action' do
61
+ put :update, id: 1
62
+
63
+ expect(response).to_not redirect_to(root_url)
64
+ expect(flash[:error]).to be_nil
65
+ expect(response).to have_http_status(:ok)
66
+ end
67
+ it 'should allow the update (PATCH) controller action' do
68
+ patch :update, id: 1
69
+
70
+ expect(response).to_not redirect_to(root_url)
71
+ expect(flash[:error]).to be_nil
72
+ expect(response).to have_http_status(:ok)
73
+ end
74
+ it 'should allow the destroy controller action' do
75
+ post :destroy, id: 1
76
+
77
+ expect(response).to_not redirect_to(root_url)
78
+ expect(flash[:error]).to be_nil
79
+ expect(response).to have_http_status(:ok)
80
+ end
81
+ end
82
+ end
83
+ end
@@ -1,6 +1,9 @@
1
1
  require 'action_controller/railtie'
2
2
  require 'rspec/rails'
3
3
 
4
+ require 'fixtures/application'
5
+ require 'fixtures/controllers'
6
+
4
7
  require 'fortress/controller'
5
8
 
6
9
  # This file was generated by the `rspec --init` command. Conventionally, all
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fortress
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Guillaume Hain
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-21 00:00:00.000000000 Z
11
+ date: 2015-01-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionpack
@@ -155,14 +155,18 @@ files:
155
155
  - bin/thor
156
156
  - fortress.gemspec
157
157
  - lib/fortress.rb
158
+ - lib/fortress/configuration.rb
158
159
  - lib/fortress/controller.rb
159
160
  - lib/fortress/controller_interface.rb
160
161
  - lib/fortress/mechanism.rb
161
162
  - lib/fortress/version.rb
162
163
  - spec/fixtures/application.rb
163
164
  - spec/fixtures/controllers.rb
165
+ - spec/fortress/access_deny_spec.rb
166
+ - spec/fortress/configuration_spec.rb
164
167
  - spec/fortress/controller_interface_spec.rb
165
168
  - spec/fortress/controller_spec.rb
169
+ - spec/fortress/external_controllers_spec.rb
166
170
  - spec/fortress/mechanism_spec.rb
167
171
  - spec/spec_helper.rb
168
172
  homepage: https://github.com/YourCursus/fortress
@@ -193,7 +197,10 @@ summary: Secure your Rails application from preventing access to everything to o
193
197
  test_files:
194
198
  - spec/fixtures/application.rb
195
199
  - spec/fixtures/controllers.rb
200
+ - spec/fortress/access_deny_spec.rb
201
+ - spec/fortress/configuration_spec.rb
196
202
  - spec/fortress/controller_interface_spec.rb
197
203
  - spec/fortress/controller_spec.rb
204
+ - spec/fortress/external_controllers_spec.rb
198
205
  - spec/fortress/mechanism_spec.rb
199
206
  - spec/spec_helper.rb