cadenero 0.0.2.a3 → 0.0.2.b1
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.
- checksums.yaml +15 -0
- data/README.md +4 -3
- data/app/controllers/cadenero/v1/account/sessions_controller.rb +3 -1
- data/app/controllers/cadenero/v1/account/users_controller.rb +8 -2
- data/app/controllers/cadenero/v1/accounts_controller.rb +13 -1
- data/app/extenders/middleware/robustness.rb +19 -0
- data/app/models/cadenero/member.rb +1 -0
- data/app/models/cadenero/user.rb +2 -0
- data/app/models/cadenero/v1/account.rb +16 -1
- data/app/serializers/cadenero/account_serializer.rb +1 -0
- data/app/serializers/cadenero/user_serializer.rb +1 -0
- data/config/initializers/apartment.rb +4 -1
- data/config/initializers/warden/strategies/password.rb +1 -1
- data/config/routes.rb +1 -0
- data/lib/cadenero/constraints/subdomain_required.rb +2 -0
- data/lib/cadenero/engine.rb +1 -1
- data/lib/cadenero/testing_support/subdomain_helpers.rb +15 -0
- data/lib/cadenero/version.rb +1 -1
- data/lib/cadenero.rb +2 -0
- data/lib/generators/cadenero/install_generator.rb +17 -0
- data/spec/dummy/log/development.log +209 -0
- data/spec/dummy/log/test.log +26783 -5135
- data/spec/dummy/tmp/ember-rails/ember.js +1693 -676
- data/spec/features/users/sign_in_spec.rb +13 -3
- data/spec/models/cadenero/account_spec.rb +31 -1
- data/spec/spec_helper.rb +1 -0
- metadata +11 -44
- data/app/helpers/cadenero/application_helper.rb +0 -4
- data/app/helpers/cadenero/v1/accounts_helper.rb +0 -4
- data/app/helpers/cadenero/v1/users_helper.rb +0 -4
- data/spec/features/cadenero/account_spec.rb +0 -23
- data/spec/support/subdomain_helpers.rb +0 -8
@@ -1,6 +1,8 @@
|
|
1
1
|
require 'spec_helper'
|
2
|
+
require 'cadenero/testing_support/subdomain_helpers'
|
3
|
+
|
2
4
|
feature 'User sign in' do
|
3
|
-
extend SubdomainHelpers
|
5
|
+
extend Cadenero::TestingSupport::SubdomainHelpers
|
4
6
|
|
5
7
|
def create_account_user
|
6
8
|
@user ||= { email: "user@example.com", password: "password", password_confirmation: "password" }
|
@@ -23,7 +25,9 @@ feature 'User sign in' do
|
|
23
25
|
let(:account) { FactoryGirl.create(:account_with_schema) }
|
24
26
|
let(:errors_redirect_ro_sign_in) {{errors: %Q{Please sign in. posting the user json credentials as: {"user": {"email": "testy2@example.com", "password": "changeme"}} to /v1/sessions}, links: "/v1/sessions"}.to_json}
|
25
27
|
let(:errors_invalid_email_or_password) {{ errors: {user:["Invalid email or password"]} }.to_json}
|
28
|
+
let(:errors_invalid_subdomain) {{ errors: {subdomain:["Invalid subdomain"]} }.to_json}
|
26
29
|
let(:sessions_url) { "http://#{account.subdomain}.example.com/v1/sessions" }
|
30
|
+
let(:error_url) { "http://error.example.com/v1/sessions" }
|
27
31
|
let(:root_url) { "http://#{account.subdomain}.example.com/v1" }
|
28
32
|
|
29
33
|
within_account_subdomain do
|
@@ -74,12 +78,18 @@ feature 'User sign in' do
|
|
74
78
|
expect(last_response.body).to eql(errors_invalid_email_or_password)
|
75
79
|
end
|
76
80
|
|
77
|
-
it "cannot sign in if not a part of
|
81
|
+
it "cannot sign in if not a part of an existing subdomain" do
|
78
82
|
other_account = FactoryGirl.create(:account)
|
79
83
|
get cadenero.v1_root_url(:subdomain => account.subdomain)
|
80
84
|
expect(last_response.body).to eql(errors_redirect_ro_sign_in)
|
81
85
|
sign_in_user sessions_url, { email: other_account.owner.email, password: "", password_confirmation: "" }
|
82
86
|
expect(last_response.status).to eq 422
|
83
87
|
expect(last_response.body).to eql(errors_invalid_email_or_password)
|
84
|
-
end
|
88
|
+
end
|
89
|
+
|
90
|
+
it "cannot sign in if the subdomain does not exist" do
|
91
|
+
sign_in_user error_url, account_user(account.owner)
|
92
|
+
expect(last_response.status).to eq 422
|
93
|
+
expect(last_response.body).to eql(errors_invalid_subdomain)
|
94
|
+
end
|
85
95
|
end
|
@@ -2,6 +2,36 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
module Cadenero::V1
|
4
4
|
describe Account do
|
5
|
-
|
5
|
+
let(:user) { stub_model(Cadenero::User, email: "user@example.com", password: "password", password_confirmation: "password") }
|
6
|
+
|
7
|
+
it "is valid with valid attributes" do
|
8
|
+
expect(Account.new(subdomain: "subdomain", owner: user)).to be_valid
|
9
|
+
end
|
10
|
+
|
11
|
+
it "is not valid without a subdomain" do
|
12
|
+
account = Account.new(subdomain: nil, owner: user)
|
13
|
+
expect(account).not_to be_valid
|
14
|
+
expect(account.users).to be_empty
|
15
|
+
end
|
16
|
+
|
17
|
+
it "is not valid without a owner" do
|
18
|
+
account = Account.new(subdomain: "subdomain", owner: nil)
|
19
|
+
expect(account).not_to be_valid
|
20
|
+
end
|
21
|
+
|
22
|
+
it "creates a reference for the owner to the users of the account" do
|
23
|
+
params = {
|
24
|
+
:name => "Test Account",
|
25
|
+
:subdomain => "test",
|
26
|
+
:owner_attributes => {
|
27
|
+
:email => "user@example.com",
|
28
|
+
:password => "password",
|
29
|
+
:password_confirmation => "password"
|
30
|
+
}
|
31
|
+
}
|
32
|
+
account = Account.create_with_owner(params)
|
33
|
+
expect(account.users.first.email).to eq user.email
|
34
|
+
end
|
35
|
+
|
6
36
|
end
|
7
37
|
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,20 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cadenero
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.2.
|
5
|
-
prerelease: 6
|
4
|
+
version: 0.0.2.b1
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Manuel Vidaurre
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-07-09 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: rails-api
|
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,23 +27,20 @@ dependencies:
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: bcrypt-ruby
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
31
|
- - ~>
|
36
32
|
- !ruby/object:Gem::Version
|
37
|
-
version: 3.0.
|
33
|
+
version: 3.0.0
|
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
|
45
|
-
version: 3.0.
|
40
|
+
version: 3.0.0
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: warden
|
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: apartment
|
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: :runtime
|
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: strong_parameters
|
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: :runtime
|
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: active_model_serializers
|
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: :runtime
|
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: pg
|
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,23 +111,20 @@ dependencies:
|
|
126
111
|
- !ruby/object:Gem::Dependency
|
127
112
|
name: rspec-rails
|
128
113
|
requirement: !ruby/object:Gem::Requirement
|
129
|
-
none: false
|
130
114
|
requirements:
|
131
115
|
- - ~>
|
132
116
|
- !ruby/object:Gem::Version
|
133
|
-
version: 2.
|
117
|
+
version: '2.14'
|
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
|
141
|
-
version: 2.
|
124
|
+
version: '2.14'
|
142
125
|
- !ruby/object:Gem::Dependency
|
143
126
|
name: coveralls
|
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
|
@@ -158,7 +139,6 @@ dependencies:
|
|
158
139
|
- !ruby/object:Gem::Dependency
|
159
140
|
name: capybara
|
160
141
|
requirement: !ruby/object:Gem::Requirement
|
161
|
-
none: false
|
162
142
|
requirements:
|
163
143
|
- - ~>
|
164
144
|
- !ruby/object:Gem::Version
|
@@ -166,7 +146,6 @@ dependencies:
|
|
166
146
|
type: :development
|
167
147
|
prerelease: false
|
168
148
|
version_requirements: !ruby/object:Gem::Requirement
|
169
|
-
none: false
|
170
149
|
requirements:
|
171
150
|
- - ~>
|
172
151
|
- !ruby/object:Gem::Version
|
@@ -174,7 +153,6 @@ dependencies:
|
|
174
153
|
- !ruby/object:Gem::Dependency
|
175
154
|
name: launchy
|
176
155
|
requirement: !ruby/object:Gem::Requirement
|
177
|
-
none: false
|
178
156
|
requirements:
|
179
157
|
- - ~>
|
180
158
|
- !ruby/object:Gem::Version
|
@@ -182,7 +160,6 @@ dependencies:
|
|
182
160
|
type: :development
|
183
161
|
prerelease: false
|
184
162
|
version_requirements: !ruby/object:Gem::Requirement
|
185
|
-
none: false
|
186
163
|
requirements:
|
187
164
|
- - ~>
|
188
165
|
- !ruby/object:Gem::Version
|
@@ -190,7 +167,6 @@ dependencies:
|
|
190
167
|
- !ruby/object:Gem::Dependency
|
191
168
|
name: factory_girl
|
192
169
|
requirement: !ruby/object:Gem::Requirement
|
193
|
-
none: false
|
194
170
|
requirements:
|
195
171
|
- - ~>
|
196
172
|
- !ruby/object:Gem::Version
|
@@ -198,7 +174,6 @@ dependencies:
|
|
198
174
|
type: :development
|
199
175
|
prerelease: false
|
200
176
|
version_requirements: !ruby/object:Gem::Requirement
|
201
|
-
none: false
|
202
177
|
requirements:
|
203
178
|
- - ~>
|
204
179
|
- !ruby/object:Gem::Version
|
@@ -206,7 +181,6 @@ dependencies:
|
|
206
181
|
- !ruby/object:Gem::Dependency
|
207
182
|
name: database_cleaner
|
208
183
|
requirement: !ruby/object:Gem::Requirement
|
209
|
-
none: false
|
210
184
|
requirements:
|
211
185
|
- - ~>
|
212
186
|
- !ruby/object:Gem::Version
|
@@ -214,7 +188,6 @@ dependencies:
|
|
214
188
|
type: :development
|
215
189
|
prerelease: false
|
216
190
|
version_requirements: !ruby/object:Gem::Requirement
|
217
|
-
none: false
|
218
191
|
requirements:
|
219
192
|
- - ~>
|
220
193
|
- !ruby/object:Gem::Version
|
@@ -239,9 +212,7 @@ files:
|
|
239
212
|
- app/controllers/cadenero/v1/account/users_controller.rb
|
240
213
|
- app/controllers/cadenero/v1/accounts_controller.rb
|
241
214
|
- app/extenders/controllers/application_controller_decorator.rb
|
242
|
-
- app/
|
243
|
-
- app/helpers/cadenero/v1/accounts_helper.rb
|
244
|
-
- app/helpers/cadenero/v1/users_helper.rb
|
215
|
+
- app/extenders/middleware/robustness.rb
|
245
216
|
- app/models/cadenero/member.rb
|
246
217
|
- app/models/cadenero/user.rb
|
247
218
|
- app/models/cadenero/v1/account.rb
|
@@ -258,6 +229,7 @@ files:
|
|
258
229
|
- lib/cadenero/active_record_extensions.rb
|
259
230
|
- lib/cadenero/constraints/subdomain_required.rb
|
260
231
|
- lib/cadenero/engine.rb
|
232
|
+
- lib/cadenero/testing_support/subdomain_helpers.rb
|
261
233
|
- lib/cadenero/version.rb
|
262
234
|
- lib/cadenero.rb
|
263
235
|
- lib/generators/cadenero/install/templates/initializer.rb
|
@@ -302,7 +274,6 @@ files:
|
|
302
274
|
- spec/dummy/tmp/ember-rails/ember.js
|
303
275
|
- spec/dummy/tmp/restart.txt
|
304
276
|
- spec/features/accounts/sign_up_spec.rb
|
305
|
-
- spec/features/cadenero/account_spec.rb
|
306
277
|
- spec/features/users/sign_in_spec.rb
|
307
278
|
- spec/features/users/sign_up_spec.rb
|
308
279
|
- spec/generators/install_generator_spec.rb
|
@@ -313,30 +284,28 @@ files:
|
|
313
284
|
- spec/support/factories/account_factory.rb
|
314
285
|
- spec/support/factories/user_factory.rb
|
315
286
|
- spec/support/generator_macros.rb
|
316
|
-
- spec/support/subdomain_helpers.rb
|
317
287
|
homepage: http://www.agiltec.com.mx/ruby/gems/cadenero
|
318
288
|
licenses: []
|
289
|
+
metadata: {}
|
319
290
|
post_install_message:
|
320
291
|
rdoc_options: []
|
321
292
|
require_paths:
|
322
293
|
- lib
|
323
294
|
required_ruby_version: !ruby/object:Gem::Requirement
|
324
|
-
none: false
|
325
295
|
requirements:
|
326
296
|
- - ! '>='
|
327
297
|
- !ruby/object:Gem::Version
|
328
298
|
version: '0'
|
329
299
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
330
|
-
none: false
|
331
300
|
requirements:
|
332
301
|
- - ! '>'
|
333
302
|
- !ruby/object:Gem::Version
|
334
303
|
version: 1.3.1
|
335
304
|
requirements: []
|
336
305
|
rubyforge_project:
|
337
|
-
rubygems_version:
|
306
|
+
rubygems_version: 2.0.3
|
338
307
|
signing_key:
|
339
|
-
specification_version:
|
308
|
+
specification_version: 4
|
340
309
|
summary: Rails.API Engine for manage multitenant authentication
|
341
310
|
test_files:
|
342
311
|
- spec/controllers/cadenero/v1/accounts_controller_spec.rb
|
@@ -375,7 +344,6 @@ test_files:
|
|
375
344
|
- spec/dummy/tmp/ember-rails/ember.js
|
376
345
|
- spec/dummy/tmp/restart.txt
|
377
346
|
- spec/features/accounts/sign_up_spec.rb
|
378
|
-
- spec/features/cadenero/account_spec.rb
|
379
347
|
- spec/features/users/sign_in_spec.rb
|
380
348
|
- spec/features/users/sign_up_spec.rb
|
381
349
|
- spec/generators/install_generator_spec.rb
|
@@ -386,5 +354,4 @@ test_files:
|
|
386
354
|
- spec/support/factories/account_factory.rb
|
387
355
|
- spec/support/factories/user_factory.rb
|
388
356
|
- spec/support/generator_macros.rb
|
389
|
-
- spec/support/subdomain_helpers.rb
|
390
357
|
has_rdoc:
|
@@ -1,23 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
feature Cadenero::V1::Account do
|
4
|
-
scenario "can be created with an owner" do
|
5
|
-
params = {
|
6
|
-
:name => "Test Account",
|
7
|
-
:subdomain => "test",
|
8
|
-
:owner_attributes => {
|
9
|
-
:email => "user@example.com",
|
10
|
-
:password => "password",
|
11
|
-
:password_confirmation => "password"
|
12
|
-
}
|
13
|
-
}
|
14
|
-
account = Cadenero::V1::Account.create_with_owner(params)
|
15
|
-
account.users.first.should == account.owner
|
16
|
-
end
|
17
|
-
|
18
|
-
it "cannot create an account without a subdomain" do
|
19
|
-
account = Cadenero::V1::Account.create_with_owner
|
20
|
-
account.should_not be_valid
|
21
|
-
account.users.should be_empty
|
22
|
-
end
|
23
|
-
end
|