fine_print 2.2.1 → 2.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/fine_print/application_controller.rb +3 -1
- data/app/controllers/fine_print/signatures_controller.rb +2 -4
- data/config/initializers/fine_print.rb +7 -3
- data/lib/fine_print/controller_includes.rb +4 -2
- data/lib/fine_print/version.rb +1 -1
- data/spec/controllers/contracts_controller_spec.rb +27 -27
- data/spec/controllers/home_controller_spec.rb +3 -3
- data/spec/controllers/signatures_controller_spec.rb +10 -15
- data/spec/dummy/config/environments/production.rb +1 -1
- data/spec/dummy/config/environments/test.rb +1 -1
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/log/test.log +1320 -111117
- metadata +44 -34
- data/spec/dummy/db/development.sqlite3 +0 -0
- data/spec/dummy/log/development.log +0 -31988
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bb595ef06e5a4534032ca5b53a451bf643d55057
|
4
|
+
data.tar.gz: 448f987e0838f6db8ee5ceca70b94b292d2583d1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0a4d7b6f294854009c55012c8045fbb1f48ae9809cd1c5f6e3acb106f8d268de6473aa1aa6755598ff5003f4b56ed3b7fe358f3933e2c3bd25b82b02656b6e1b
|
7
|
+
data.tar.gz: b0ee996920455b6354e66eafb088fc34ab10ffbbe282a6323a4b02644594b5ec652534e32168f4e1eeb21bc7c80f666b78e72c3674a69cf3dddb70b50725618b
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'responders'
|
2
|
+
|
1
3
|
module FinePrint
|
2
4
|
class ApplicationController < ActionController::Base
|
3
5
|
respond_to :html
|
@@ -15,7 +17,7 @@ module FinePrint
|
|
15
17
|
end
|
16
18
|
|
17
19
|
def can_manage
|
18
|
-
|
20
|
+
instance_exec @user, &FinePrint.can_manage_proc
|
19
21
|
end
|
20
22
|
end
|
21
23
|
end
|
@@ -2,8 +2,6 @@ module FinePrint
|
|
2
2
|
class SignaturesController < FinePrint::ApplicationController
|
3
3
|
include FinePrint::ApplicationHelper
|
4
4
|
|
5
|
-
acts_as_interceptor :override_url_options => true
|
6
|
-
|
7
5
|
skip_before_filter :can_manage, :only => [:new, :create]
|
8
6
|
before_filter :can_sign, :only => [:new, :create]
|
9
7
|
before_filter :get_contract, :only => [:index, :new, :create]
|
@@ -29,7 +27,7 @@ module FinePrint
|
|
29
27
|
@signature.contract = @contract
|
30
28
|
|
31
29
|
if @signature.save
|
32
|
-
|
30
|
+
fine_print_return
|
33
31
|
else
|
34
32
|
render :action => 'new', :alert => merge_errors_for(@signature)
|
35
33
|
end
|
@@ -46,7 +44,7 @@ module FinePrint
|
|
46
44
|
protected
|
47
45
|
|
48
46
|
def can_sign
|
49
|
-
|
47
|
+
instance_exec @user, &FinePrint.can_sign_proc
|
50
48
|
end
|
51
49
|
|
52
50
|
def get_contract
|
@@ -45,9 +45,13 @@ FinePrint.configure do |config|
|
|
45
45
|
# The `contract_ids` variable contains the contract ids that need to be signed.
|
46
46
|
# The default redirects users to FinePrint's contract signing views.
|
47
47
|
# The `fine_print_return` method can be used to return from a redirect made here.
|
48
|
-
# Default: lambda { |user, contract_ids|
|
49
|
-
#
|
48
|
+
# Default: lambda { |user, contract_ids|
|
49
|
+
# redirect_to(fine_print.new_contract_signature_path(
|
50
|
+
# :contract_id => contract_ids.first
|
51
|
+
# ))
|
52
|
+
# }
|
50
53
|
config.must_sign_proc = lambda { |user, contract_ids| redirect_to(
|
51
|
-
fine_print.new_contract_signature_path(:contract_id => contract_ids.first)
|
54
|
+
fine_print.new_contract_signature_path(:contract_id => contract_ids.first)
|
55
|
+
) }
|
52
56
|
|
53
57
|
end
|
@@ -13,14 +13,16 @@ module FinePrint
|
|
13
13
|
blk = options[:must_sign_proc] || FinePrint.must_sign_proc
|
14
14
|
|
15
15
|
# Use action_interceptor to save the current url
|
16
|
-
|
16
|
+
store_url key: :fine_print_return_to
|
17
|
+
|
18
|
+
instance_exec user, contract_ids, &blk
|
17
19
|
end
|
18
20
|
|
19
21
|
# Accepts no arguments
|
20
22
|
# Redirects the user back to the url they were at before
|
21
23
|
# one of FinePrint's procs redirected them
|
22
24
|
def fine_print_return
|
23
|
-
redirect_back
|
25
|
+
redirect_back key: :fine_print_return_to
|
24
26
|
end
|
25
27
|
|
26
28
|
protected
|
data/lib/fine_print/version.rb
CHANGED
@@ -11,32 +11,32 @@ module FinePrint
|
|
11
11
|
let!(:contract) { FactoryGirl.create(:fine_print_contract) }
|
12
12
|
|
13
13
|
it "won't get index unless authorized" do
|
14
|
-
get :index
|
14
|
+
get :index
|
15
15
|
expect(response.status).to eq 403
|
16
16
|
|
17
17
|
sign_in @user
|
18
|
-
get :index
|
18
|
+
get :index
|
19
19
|
expect(response.status).to eq 403
|
20
20
|
end
|
21
21
|
|
22
22
|
it 'must get index if authorized' do
|
23
23
|
sign_in @admin
|
24
|
-
get :index
|
24
|
+
get :index
|
25
25
|
expect(response.status).to eq 200
|
26
26
|
end
|
27
27
|
|
28
28
|
it "won't get new unless authorized" do
|
29
|
-
get :new
|
29
|
+
get :new
|
30
30
|
expect(response.status).to eq 403
|
31
31
|
|
32
32
|
sign_in @user
|
33
|
-
get :new
|
33
|
+
get :new
|
34
34
|
expect(response.status).to eq 403
|
35
35
|
end
|
36
36
|
|
37
37
|
it 'must get new if authorized' do
|
38
38
|
sign_in @admin
|
39
|
-
get :new
|
39
|
+
get :new
|
40
40
|
expect(response.status).to eq 200
|
41
41
|
end
|
42
42
|
|
@@ -46,12 +46,12 @@ module FinePrint
|
|
46
46
|
attributes[:title] = 'Some title'
|
47
47
|
attributes[:content] = 'Some content'
|
48
48
|
|
49
|
-
post :create, :contract => :attributes
|
49
|
+
post :create, :contract => :attributes
|
50
50
|
expect(response.status).to eq 403
|
51
51
|
expect(assigns(:contract)).to be_nil
|
52
52
|
|
53
53
|
sign_in @user
|
54
|
-
post :create, :contract => :attributes
|
54
|
+
post :create, :contract => :attributes
|
55
55
|
expect(response.status).to eq 403
|
56
56
|
expect(assigns(:contract)).to be_nil
|
57
57
|
end
|
@@ -63,7 +63,7 @@ module FinePrint
|
|
63
63
|
attributes[:title] = 'Some title'
|
64
64
|
attributes[:content] = 'Some content'
|
65
65
|
|
66
|
-
post :create, :contract => attributes
|
66
|
+
post :create, :contract => attributes
|
67
67
|
expect(response).to redirect_to assigns(:contract)
|
68
68
|
expect(assigns(:contract).errors).to be_empty
|
69
69
|
expect(assigns(:contract).name).to eq 'some_name'
|
@@ -72,17 +72,17 @@ module FinePrint
|
|
72
72
|
end
|
73
73
|
|
74
74
|
it "won't edit unless authorized" do
|
75
|
-
get :edit, :id => contract.id
|
75
|
+
get :edit, :id => contract.id
|
76
76
|
expect(response.status).to eq 403
|
77
77
|
|
78
78
|
sign_in @user
|
79
|
-
get :edit, :id => contract.id
|
79
|
+
get :edit, :id => contract.id
|
80
80
|
expect(response.status).to eq 403
|
81
81
|
end
|
82
82
|
|
83
83
|
it 'must edit if authorized' do
|
84
84
|
sign_in @admin
|
85
|
-
get :edit, :id => contract.id
|
85
|
+
get :edit, :id => contract.id
|
86
86
|
expect(response.status).to eq 200
|
87
87
|
end
|
88
88
|
|
@@ -95,7 +95,7 @@ module FinePrint
|
|
95
95
|
title = contract.title
|
96
96
|
content = contract.content
|
97
97
|
|
98
|
-
put :update, :id => contract.id, :contract => attributes
|
98
|
+
put :update, :id => contract.id, :contract => attributes
|
99
99
|
expect(response.status).to eq 403
|
100
100
|
contract.reload
|
101
101
|
expect(contract.name).to eq name
|
@@ -103,7 +103,7 @@ module FinePrint
|
|
103
103
|
expect(contract.content).to eq content
|
104
104
|
|
105
105
|
sign_in @user
|
106
|
-
put :update, :id => contract.id, :contract => attributes
|
106
|
+
put :update, :id => contract.id, :contract => attributes
|
107
107
|
expect(response.status).to eq 403
|
108
108
|
contract.reload
|
109
109
|
expect(contract.name).to eq name
|
@@ -118,7 +118,7 @@ module FinePrint
|
|
118
118
|
attributes[:content] = 'Another content'
|
119
119
|
|
120
120
|
sign_in @admin
|
121
|
-
put :update, :id => contract.id, :contract => attributes
|
121
|
+
put :update, :id => contract.id, :contract => attributes
|
122
122
|
expect(response).to redirect_to contract
|
123
123
|
contract.reload
|
124
124
|
expect(contract.errors).to be_empty
|
@@ -128,32 +128,32 @@ module FinePrint
|
|
128
128
|
end
|
129
129
|
|
130
130
|
it "won't destroy unless authorized" do
|
131
|
-
delete :destroy, :id => contract.id
|
131
|
+
delete :destroy, :id => contract.id
|
132
132
|
expect(response.status).to eq 403
|
133
133
|
expect(Contract.find(contract.id)).to eq contract
|
134
134
|
|
135
135
|
sign_in @user
|
136
|
-
delete :destroy, :id => contract.id
|
136
|
+
delete :destroy, :id => contract.id
|
137
137
|
expect(response.status).to eq 403
|
138
138
|
expect(Contract.find(contract.id)).to eq contract
|
139
139
|
end
|
140
140
|
|
141
141
|
it 'must destroy if authorized' do
|
142
142
|
sign_in @admin
|
143
|
-
delete :destroy, :id => contract.id
|
143
|
+
delete :destroy, :id => contract.id
|
144
144
|
expect(response).to redirect_to contracts_path
|
145
145
|
expect(Contract.find_by_id(contract.id)).to be_nil
|
146
146
|
end
|
147
147
|
|
148
148
|
it "won't publish unless authorized" do
|
149
149
|
expect(contract.is_published?).to eq false
|
150
|
-
put :publish, :id => contract.id
|
150
|
+
put :publish, :id => contract.id
|
151
151
|
expect(response.status).to eq 403
|
152
152
|
contract.reload
|
153
153
|
expect(contract.is_published?).to eq false
|
154
154
|
|
155
155
|
sign_in @user
|
156
|
-
put :publish, :id => contract.id
|
156
|
+
put :publish, :id => contract.id
|
157
157
|
expect(response.status).to eq 403
|
158
158
|
contract.reload
|
159
159
|
expect(contract.is_published?).to eq false
|
@@ -163,7 +163,7 @@ module FinePrint
|
|
163
163
|
expect(contract.is_published?).to eq false
|
164
164
|
sign_in @admin
|
165
165
|
|
166
|
-
put :publish, :id => contract.id
|
166
|
+
put :publish, :id => contract.id
|
167
167
|
expect(response).to redirect_to contracts_path
|
168
168
|
contract.reload
|
169
169
|
expect(contract.is_published?).to eq true
|
@@ -172,13 +172,13 @@ module FinePrint
|
|
172
172
|
it "won't unpublish unless authorized" do
|
173
173
|
contract.publish
|
174
174
|
expect(contract.is_published?).to eq true
|
175
|
-
put :unpublish, :id => contract.id
|
175
|
+
put :unpublish, :id => contract.id
|
176
176
|
expect(response.status).to eq 403
|
177
177
|
contract.reload
|
178
178
|
expect(contract.is_published?).to eq true
|
179
179
|
|
180
180
|
sign_in @user
|
181
|
-
put :unpublish, :id => contract.id
|
181
|
+
put :unpublish, :id => contract.id
|
182
182
|
expect(response.status).to eq 403
|
183
183
|
contract.reload
|
184
184
|
expect(contract.is_published?).to eq true
|
@@ -189,7 +189,7 @@ module FinePrint
|
|
189
189
|
expect(contract.is_published?).to eq true
|
190
190
|
|
191
191
|
sign_in @admin
|
192
|
-
put :unpublish, :id => contract.id
|
192
|
+
put :unpublish, :id => contract.id
|
193
193
|
expect(response).to redirect_to contracts_path
|
194
194
|
contract.reload
|
195
195
|
expect(contract.is_published?).to eq false
|
@@ -199,12 +199,12 @@ module FinePrint
|
|
199
199
|
contract.publish
|
200
200
|
expect(contract.is_published?).to eq true
|
201
201
|
|
202
|
-
post :new_version, :id => contract.id
|
202
|
+
post :new_version, :id => contract.id
|
203
203
|
expect(response.status).to eq 403
|
204
204
|
expect(assigns(:contract)).to be_nil
|
205
205
|
|
206
206
|
sign_in @user
|
207
|
-
post :new_version, :id => contract.id
|
207
|
+
post :new_version, :id => contract.id
|
208
208
|
expect(response.status).to eq 403
|
209
209
|
expect(assigns(:contract)).to be_nil
|
210
210
|
end
|
@@ -214,7 +214,7 @@ module FinePrint
|
|
214
214
|
expect(contract.is_published?).to eq true
|
215
215
|
|
216
216
|
sign_in @admin
|
217
|
-
post :new_version, :id => contract.id
|
217
|
+
post :new_version, :id => contract.id
|
218
218
|
expect(response.status).to eq 200
|
219
219
|
expect(assigns(:contract)).not_to be_nil
|
220
220
|
end
|
@@ -9,18 +9,18 @@ module FinePrint
|
|
9
9
|
end
|
10
10
|
|
11
11
|
it "won't get index unless authorized" do
|
12
|
-
get :index
|
12
|
+
get :index
|
13
13
|
expect(response.status).to eq 403
|
14
14
|
|
15
15
|
sign_in @user
|
16
|
-
get :index
|
16
|
+
get :index
|
17
17
|
expect(response.status).to eq 403
|
18
18
|
end
|
19
19
|
|
20
20
|
it 'must get index if authorized' do
|
21
21
|
sign_in @user
|
22
22
|
@user.is_admin = true
|
23
|
-
get :index
|
23
|
+
get :index
|
24
24
|
expect(response).to redirect_to contracts_path
|
25
25
|
end
|
26
26
|
end
|
@@ -11,61 +11,56 @@ module FinePrint
|
|
11
11
|
let!(:signature) { FactoryGirl.create(:fine_print_signature) }
|
12
12
|
|
13
13
|
it "won't get index unless authorized" do
|
14
|
-
get :index, :contract_id => signature.contract.id
|
14
|
+
get :index, :contract_id => signature.contract.id
|
15
15
|
expect(response.status).to eq 403
|
16
16
|
|
17
17
|
sign_in @user
|
18
|
-
get :index, :contract_id => signature.contract.id
|
18
|
+
get :index, :contract_id => signature.contract.id
|
19
19
|
expect(response.status).to eq 403
|
20
20
|
end
|
21
21
|
|
22
22
|
it 'must get index if authorized' do
|
23
23
|
sign_in @admin
|
24
|
-
get :index, :contract_id => signature.contract.id
|
25
|
-
:use_route => :fine_print
|
24
|
+
get :index, :contract_id => signature.contract.id
|
26
25
|
expect(response.status).to eq 200
|
27
26
|
end
|
28
27
|
|
29
28
|
it "won't get new unless signed in" do
|
30
|
-
get :new, :contract_id => signature.contract.id
|
31
|
-
:use_route => :fine_print
|
29
|
+
get :new, :contract_id => signature.contract.id
|
32
30
|
expect(response.status).to eq 401
|
33
31
|
end
|
34
32
|
|
35
33
|
it 'must get new if signed in' do
|
36
34
|
sign_in @user
|
37
|
-
get :new, :contract_id => signature.contract.id
|
38
|
-
:use_route => :fine_print
|
35
|
+
get :new, :contract_id => signature.contract.id
|
39
36
|
expect(response.status).to eq 200
|
40
37
|
end
|
41
38
|
|
42
39
|
it "won't create unless signed in" do
|
43
|
-
post :create, :contract_id => signature.contract.id
|
44
|
-
:use_route => :fine_print
|
40
|
+
post :create, :contract_id => signature.contract.id
|
45
41
|
expect(response.status).to eq 401
|
46
42
|
end
|
47
43
|
|
48
44
|
it 'must create if signed in' do
|
49
45
|
sign_in @user
|
50
|
-
get :new, :contract_id => signature.contract.id
|
51
|
-
:use_route => :fine_print
|
46
|
+
get :new, :contract_id => signature.contract.id
|
52
47
|
expect(response.status).to eq 200
|
53
48
|
end
|
54
49
|
|
55
50
|
it "won't destroy unless authorized" do
|
56
|
-
delete :destroy, :id => signature.id
|
51
|
+
delete :destroy, :id => signature.id
|
57
52
|
expect(response.status).to eq 403
|
58
53
|
expect(Signature.find(signature.id)).to eq signature
|
59
54
|
|
60
55
|
sign_in @user
|
61
|
-
delete :destroy, :id => signature.id
|
56
|
+
delete :destroy, :id => signature.id
|
62
57
|
expect(response.status).to eq 403
|
63
58
|
expect(Signature.find(signature.id)).to eq signature
|
64
59
|
end
|
65
60
|
|
66
61
|
it 'must destroy if authorized' do
|
67
62
|
sign_in @admin
|
68
|
-
delete :destroy, :id => signature.id
|
63
|
+
delete :destroy, :id => signature.id
|
69
64
|
expect(response).to redirect_to contract_signatures_path(signature.contract)
|
70
65
|
expect(Signature.find_by_id(signature.id)).to be_nil
|
71
66
|
end
|
@@ -20,7 +20,7 @@ Dummy::Application.configure do
|
|
20
20
|
# config.action_dispatch.rack_cache = true
|
21
21
|
|
22
22
|
# Disable Rails's static asset server (Apache or nginx will already do this).
|
23
|
-
config.
|
23
|
+
config.serve_static_files = false
|
24
24
|
|
25
25
|
# Compress JavaScripts and CSS.
|
26
26
|
config.assets.js_compressor = :uglifier
|
@@ -13,7 +13,7 @@ Dummy::Application.configure do
|
|
13
13
|
config.eager_load = false
|
14
14
|
|
15
15
|
# Configure static asset server for tests with Cache-Control for performance.
|
16
|
-
config.
|
16
|
+
config.serve_static_files = true
|
17
17
|
config.static_cache_control = "public, max-age=3600"
|
18
18
|
|
19
19
|
# Show full error reports and disable caching.
|
data/spec/dummy/db/test.sqlite3
CHANGED
Binary file
|