koudoku 0.0.10 → 0.0.11

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 1d46eda181a6f5e58abc651b8ca10206c732ddf0
4
+ data.tar.gz: d0e19555a3872b3dd149dc828b7722bbcb44af44
5
+ SHA512:
6
+ metadata.gz: 9a07862153a860e36853302ea963002511df5df50257f19795b7d838bb34e72095f4cb3b71caeaf1aed108d9eac9d16b6fb41f210e681002e6ffa75d0497536f
7
+ data.tar.gz: 239b6f176976989b1bacd3a51facbae0714bd6dccbfbc62800d6a225fcb396a1737f3891bb1df94e49696447e5e375ec6bd292979eb3cafce68e91cd13da9f5c
@@ -69,6 +69,7 @@ module Koudoku::Subscription
69
69
 
70
70
  customer_attributes = {
71
71
  description: subscription_owner_description,
72
+ email: subscription_owner_email,
72
73
  card: credit_card_token, # obtained with Stripe.js
73
74
  plan: plan.stripe_id
74
75
  }
@@ -167,6 +168,10 @@ module Koudoku::Subscription
167
168
  "#{subscription_owner.id}"
168
169
  end
169
170
 
171
+ def subscription_owner_email
172
+ nil
173
+ end
174
+
170
175
  def changing_plans?
171
176
  plan_id_changed?
172
177
  end
@@ -9,9 +9,19 @@ module Koudoku
9
9
  @plans = ::Plan.order(:price)
10
10
  end
11
11
 
12
+ def unauthorized
13
+ render status: 401, template: "koudoku/subscriptions/unauthorized"
14
+ false
15
+ end
16
+
12
17
  def load_owner
13
- # e.g. User.find(params[:user_id])
14
- @owner = Koudoku.owner_class.find(params[:owner_id]) unless params[:owner_id].nil?
18
+ unless params[:owner_id].nil?
19
+ if current_owner.try(:id) == params[:owner_id].try(:to_i)
20
+ @owner = current_owner
21
+ else
22
+ return unauthorized
23
+ end
24
+ end
15
25
  end
16
26
 
17
27
  def no_owner?
@@ -19,7 +29,9 @@ module Koudoku
19
29
  end
20
30
 
21
31
  def load_subscription
22
- @subscription = ::Subscription.find(params[:id])
32
+ ownership_attribute = (Koudoku.subscriptions_owned_by.to_s + "_id").to_sym
33
+ @subscription = ::Subscription.where(ownership_attribute => current_owner.id).find_by_id(params[:id])
34
+ return @subscription.present? ? @subscription : unauthorized
23
35
  end
24
36
 
25
37
  # the following two methods allow us to show the pricing table before someone has an account.
@@ -119,7 +131,15 @@ module Koudoku
119
131
 
120
132
  private
121
133
  def subscription_params
122
- params.require(:subscription).permit(:plan_id, :stripe_id, :current_price, :credit_card_token, :card_type, :last_four)
134
+
135
+ # If strong_parameters is around, use that.
136
+ if defined?(ActionController::StrongParameters)
137
+ params.require(:subscription).permit(:plan_id, :stripe_id, :current_price, :credit_card_token, :card_type, :last_four)
138
+ else
139
+ # Otherwise, let's hope they're using attr_accessible to protect their models!
140
+ params[:subscription]
141
+ end
142
+
123
143
  end
124
144
  end
125
145
  end
@@ -0,0 +1 @@
1
+ <h1>Unauthorized</h1>
@@ -18,11 +18,11 @@ module Koudoku
18
18
 
19
19
  def install
20
20
 
21
- ["_pricing_table.html.erb", "edit.html.erb", "index.html.erb", "new.html.erb", "show.html.erb"].each do |file|
21
+ ["_card.html.erb","_pricing_table.html.erb", "edit.html.erb", "index.html.erb", "new.html.erb", "show.html.erb", "unauthorized.html.erb"].each do |file|
22
22
  copy_file file, "app/views/koudoku/subscriptions/#{file}"
23
23
  end
24
24
 
25
25
  end
26
26
 
27
27
  end
28
- end
28
+ end
@@ -9,5 +9,12 @@ module Koudoku
9
9
  g.assets false
10
10
  g.helper false
11
11
  end
12
+
13
+ initializer 'koudoku.action_controller' do |app|
14
+ ActiveSupport.on_load :action_controller do
15
+ helper Koudoku::ApplicationHelper
16
+ end
17
+ end
18
+
12
19
  end
13
20
  end
@@ -1,3 +1,3 @@
1
1
  module Koudoku
2
- VERSION = "0.0.10"
2
+ VERSION = "0.0.11"
3
3
  end
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: koudoku
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.10
5
- prerelease:
4
+ version: 0.0.11
6
5
  platform: ruby
7
6
  authors:
8
7
  - Andrew Culver
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-08-21 00:00:00.000000000 Z
11
+ date: 2013-10-30 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rails
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - '>='
20
18
  - !ruby/object:Gem::Version
@@ -22,7 +20,6 @@ dependencies:
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - '>='
28
25
  - !ruby/object:Gem::Version
@@ -30,7 +27,6 @@ dependencies:
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: stripe
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
31
  - - '>='
36
32
  - !ruby/object:Gem::Version
@@ -38,7 +34,6 @@ dependencies:
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
38
  - - '>='
44
39
  - !ruby/object:Gem::Version
@@ -46,7 +41,6 @@ dependencies:
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: bluecloth
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
45
  - - '>='
52
46
  - !ruby/object:Gem::Version
@@ -54,7 +48,6 @@ dependencies:
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
52
  - - '>='
60
53
  - !ruby/object:Gem::Version
@@ -62,7 +55,6 @@ dependencies:
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: jquery-rails
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
59
  - - '>='
68
60
  - !ruby/object:Gem::Version
@@ -70,7 +62,6 @@ dependencies:
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
66
  - - '>='
76
67
  - !ruby/object:Gem::Version
@@ -78,7 +69,6 @@ dependencies:
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: sqlite3
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
73
  - - '>='
84
74
  - !ruby/object:Gem::Version
@@ -86,7 +76,6 @@ dependencies:
86
76
  type: :development
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
80
  - - '>='
92
81
  - !ruby/object:Gem::Version
@@ -94,7 +83,6 @@ dependencies:
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: rspec-rails
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
87
  - - '>='
100
88
  - !ruby/object:Gem::Version
@@ -102,7 +90,6 @@ dependencies:
102
90
  type: :development
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
94
  - - '>='
108
95
  - !ruby/object:Gem::Version
@@ -110,7 +97,6 @@ dependencies:
110
97
  - !ruby/object:Gem::Dependency
111
98
  name: capybara
112
99
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
100
  requirements:
115
101
  - - '>='
116
102
  - !ruby/object:Gem::Version
@@ -118,7 +104,6 @@ dependencies:
118
104
  type: :development
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
107
  requirements:
123
108
  - - '>='
124
109
  - !ruby/object:Gem::Version
@@ -126,7 +111,6 @@ dependencies:
126
111
  - !ruby/object:Gem::Dependency
127
112
  name: factory_girl_rails
128
113
  requirement: !ruby/object:Gem::Requirement
129
- none: false
130
114
  requirements:
131
115
  - - '>='
132
116
  - !ruby/object:Gem::Version
@@ -134,7 +118,6 @@ dependencies:
134
118
  type: :development
135
119
  prerelease: false
136
120
  version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
121
  requirements:
139
122
  - - '>='
140
123
  - !ruby/object:Gem::Version
@@ -142,7 +125,6 @@ dependencies:
142
125
  - !ruby/object:Gem::Dependency
143
126
  name: pry
144
127
  requirement: !ruby/object:Gem::Requirement
145
- none: false
146
128
  requirements:
147
129
  - - '>='
148
130
  - !ruby/object:Gem::Version
@@ -150,7 +132,6 @@ dependencies:
150
132
  type: :development
151
133
  prerelease: false
152
134
  version_requirements: !ruby/object:Gem::Requirement
153
- none: false
154
135
  requirements:
155
136
  - - '>='
156
137
  - !ruby/object:Gem::Version
@@ -180,6 +161,7 @@ files:
180
161
  - app/views/koudoku/subscriptions/index.html.erb
181
162
  - app/views/koudoku/subscriptions/new.html.erb
182
163
  - app/views/koudoku/subscriptions/show.html.erb
164
+ - app/views/koudoku/subscriptions/unauthorized.html.erb
183
165
  - app/views/layouts/koudoku/application.html.erb
184
166
  - config/environment.rb
185
167
  - config/routes.rb
@@ -250,6 +232,7 @@ files:
250
232
  - spec/spec_helper.rb
251
233
  homepage: http://github.com/andrewculver/koudoku
252
234
  licenses: []
235
+ metadata: {}
253
236
  post_install_message: |2+
254
237
 
255
238
  Koudoku is still in early development, so if this installation is an upgrade
@@ -262,28 +245,20 @@ rdoc_options: []
262
245
  require_paths:
263
246
  - lib
264
247
  required_ruby_version: !ruby/object:Gem::Requirement
265
- none: false
266
248
  requirements:
267
249
  - - '>='
268
250
  - !ruby/object:Gem::Version
269
251
  version: '0'
270
- segments:
271
- - 0
272
- hash: -3013715524796379015
273
252
  required_rubygems_version: !ruby/object:Gem::Requirement
274
- none: false
275
253
  requirements:
276
254
  - - '>='
277
255
  - !ruby/object:Gem::Version
278
256
  version: '0'
279
- segments:
280
- - 0
281
- hash: -3013715524796379015
282
257
  requirements: []
283
258
  rubyforge_project:
284
- rubygems_version: 1.8.25
259
+ rubygems_version: 2.0.6
285
260
  signing_key:
286
- specification_version: 3
261
+ specification_version: 4
287
262
  summary: Robust subscription support for Rails with Stripe.
288
263
  test_files:
289
264
  - spec/concerns/koudoku/plan_spec.rb