cadenero 0.0.2.a → 0.0.2.a1
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.
- data/README.md +46 -9
- data/app/controllers/cadenero/v1/account/dashboard_controller.rb +1 -1
- data/app/controllers/cadenero/v1/account/sessions_controller.rb +27 -0
- data/app/controllers/cadenero/v1/accounts_controller.rb +4 -0
- data/app/extenders/controllers/application_controller_decorator.rb +4 -3
- data/app/serializers/cadenero/user_serializer.rb +1 -0
- data/config/initializers/warden/strategies/password.rb +13 -4
- data/config/initializers/warden.rb +1 -0
- data/config/routes.rb +6 -11
- data/db/seeds.rb +8 -2
- data/lib/cadenero/engine.rb +1 -0
- data/lib/cadenero/version.rb +1 -1
- data/lib/cadenero.rb +25 -0
- data/lib/generators/cadenero/install/templates/initializer.rb +0 -3
- data/lib/generators/cadenero/install_generator.rb +40 -17
- data/spec/dummy/app/controllers/application_controller.rb +6 -0
- data/spec/dummy/db/seeds.rb +8 -0
- data/spec/dummy/log/development.log +527 -87
- data/spec/dummy/log/test.log +3117 -8571
- data/spec/dummy/tmp/cache/assets/D0B/E90/sprockets%2F2c56f5dc65ded8014ad1226c5c985124 +0 -0
- data/spec/dummy/tmp/cache/assets/D86/490/sprockets%2Faaf0d4667cf7ef62869d70539bc77af7 +0 -0
- data/spec/dummy/tmp/cache/assets/DA6/CC0/sprockets%2F1c575d7a7db598dfcf41536ccc83f01e +0 -0
- data/spec/dummy/tmp/cache/assets/DB6/250/sprockets%2F0f882b7b9528900cfec89e8b2fffcc38 +0 -0
- data/spec/dummy/tmp/cache/assets/E18/9D0/sprockets%2F1f79e8f926ea465ded9dcc552cd56bff +0 -0
- data/spec/dummy/tmp/restart.txt +0 -0
- data/spec/features/users/sign_in_spec.rb +29 -10
- data/spec/features/users/sign_up_spec.rb +2 -2
- data/spec/generators/install_generator_spec.rb +1 -24
- metadata +17 -3
- data/app/controllers/cadenero/v1/sessions_controller.rb +0 -13
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
File without changes
|
@@ -6,8 +6,8 @@ feature 'User sign in' do
|
|
6
6
|
@user ||= { email: "user@example.com", password: "password", password_confirmation: "password" }
|
7
7
|
end
|
8
8
|
|
9
|
-
def
|
10
|
-
@user = { email: user.email, password: "password"
|
9
|
+
def account_user(user)
|
10
|
+
@user = { email: user.email, password: "password" }
|
11
11
|
end
|
12
12
|
|
13
13
|
def find_account_by_email
|
@@ -16,30 +16,49 @@ feature 'User sign in' do
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def sign_in_user(url, user)
|
19
|
-
post "#{url}", user: user
|
19
|
+
post "#{url}", format: :json, user: user
|
20
20
|
find_account_by_email
|
21
21
|
end
|
22
22
|
|
23
23
|
let(:account) { FactoryGirl.create(:account_with_schema) }
|
24
|
-
let(:errors_redirect_ro_sign_in) {{errors:
|
24
|
+
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
25
|
let(:errors_invalid_email_or_password) {{ errors: {user:["Invalid email or password"]} }.to_json}
|
26
|
-
let(:
|
26
|
+
let(:sessions_url) { "http://#{account.subdomain}.example.com/v1/sessions" }
|
27
27
|
let(:root_url) { "http://#{account.subdomain}.example.com/v1" }
|
28
28
|
|
29
29
|
within_account_subdomain do
|
30
30
|
scenario "signs in as an account owner successfully" do
|
31
|
-
get
|
31
|
+
get cadenero.v1_root_url(:subdomain => account.subdomain)
|
32
32
|
expect(last_response.body).to eql(errors_redirect_ro_sign_in)
|
33
|
-
|
33
|
+
expect(last_response.status).to eq 422
|
34
|
+
sign_in_user sessions_url, account_user(account.owner)
|
35
|
+
expect(last_response.status).to eq 201
|
36
|
+
expect(JSON.parse(last_response.body)["user"]["account_ids"]).to eq [account.id]
|
37
|
+
user_email = JSON.parse(last_response.body)["user"]["email"]
|
38
|
+
get root_url
|
39
|
+
expect(JSON.parse(last_response.body)["message"]).to have_content user_email
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
within_account_subdomain do
|
44
|
+
scenario "signout as an account owner successfully" do
|
45
|
+
sign_in_user sessions_url, account_user(account.owner)
|
34
46
|
expect(last_response.status).to eq 201
|
35
47
|
expect(JSON.parse(last_response.body)["user"]["account_ids"]).to eq [account.id]
|
48
|
+
user_email = JSON.parse(last_response.body)["user"]["email"]
|
49
|
+
delete sessions_url, id: account.owner.id
|
50
|
+
expect(last_response.status).to eq 201
|
51
|
+
expect(JSON.parse(last_response.body)["message"]).to have_content "Successful logout"
|
52
|
+
get cadenero.v1_root_url(:subdomain => account.subdomain)
|
53
|
+
expect(last_response.body).to eql(errors_redirect_ro_sign_in)
|
54
|
+
expect(last_response.status).to eq 422
|
36
55
|
end
|
37
56
|
end
|
38
57
|
|
39
58
|
it "attempts sign in with an invalid password and fails" do
|
40
59
|
get cadenero.v1_root_url(:subdomain => account.subdomain)
|
41
60
|
expect(last_response.body).to eql(errors_redirect_ro_sign_in)
|
42
|
-
sign_in_user
|
61
|
+
sign_in_user sessions_url, { email: "user@example.com", password: "", password_confirmation: "" }
|
43
62
|
expect(last_response.status).to eq 422
|
44
63
|
expect(last_response.body).to eql(errors_invalid_email_or_password)
|
45
64
|
end
|
@@ -47,7 +66,7 @@ feature 'User sign in' do
|
|
47
66
|
it "attempts sign in with an invalid email address and fails" do
|
48
67
|
get cadenero.v1_root_url(:subdomain => account.subdomain)
|
49
68
|
expect(last_response.body).to eql(errors_redirect_ro_sign_in)
|
50
|
-
sign_in_user
|
69
|
+
sign_in_user sessions_url, { email: "foo@example.com", password: "password", password_confirmation: "password" }
|
51
70
|
expect(last_response.status).to eq 422
|
52
71
|
expect(last_response.body).to eql(errors_invalid_email_or_password)
|
53
72
|
end
|
@@ -56,7 +75,7 @@ feature 'User sign in' do
|
|
56
75
|
other_account = FactoryGirl.create(:account)
|
57
76
|
get cadenero.v1_root_url(:subdomain => account.subdomain)
|
58
77
|
expect(last_response.body).to eql(errors_redirect_ro_sign_in)
|
59
|
-
sign_in_user
|
78
|
+
sign_in_user sessions_url, { email: other_account.owner.email, password: "", password_confirmation: "" }
|
60
79
|
expect(last_response.status).to eq 422
|
61
80
|
expect(last_response.body).to eql(errors_invalid_email_or_password)
|
62
81
|
end
|
@@ -10,7 +10,7 @@ end
|
|
10
10
|
|
11
11
|
def sign_up_user(url)
|
12
12
|
create_account_user
|
13
|
-
post "#{url}/v1/
|
13
|
+
post "#{url}/v1/users", user: @user
|
14
14
|
find_account_by_email
|
15
15
|
end
|
16
16
|
|
@@ -21,6 +21,6 @@ feature "User signup" do
|
|
21
21
|
sign_up_user root_url
|
22
22
|
expect(last_response.status).to eq 201
|
23
23
|
expect(JSON.parse(last_response.body)["user"]["account_ids"]).to eq [account.id]
|
24
|
-
expect(last_request.url).to eq "#{root_url}v1/
|
24
|
+
expect(last_request.url).to eq "#{root_url}v1/users"
|
25
25
|
end
|
26
26
|
end
|
@@ -16,30 +16,7 @@ describe Cadenero::Generators::InstallGenerator do
|
|
16
16
|
Dir["#{Rails.root}/db/migrate/*.rb"].sort
|
17
17
|
end
|
18
18
|
|
19
|
-
|
20
|
-
migrations.should be_empty
|
21
|
-
capture(:stdout) do
|
22
|
-
described_class.start(["--user-class=User", "--no-migrate", "--current-user-helper=current_user"], :destination => Rails.root)
|
23
|
-
end
|
24
|
-
|
25
|
-
# Ensure cadenero migrations have been copied over
|
26
|
-
migrations.should_not be_empty
|
27
|
-
|
28
|
-
# Ensure initializer has been created
|
29
|
-
#cadenero_initializer = File.readlines("#{Rails.root}/config/initializers/cadenero.rb")
|
30
|
-
#cadenero_initializer[0].strip.should == %q{Cadenero.user_class = "User"}
|
31
|
-
|
32
|
-
# Ensure cadenero_user is added to ApplicationController
|
33
|
-
application_controller = File.read("#{Rails.root}/app/controllers/application_controller.rb")
|
34
|
-
expected_cadenero_user_method = %Q{
|
35
|
-
def cadenero_user
|
36
|
-
current_user
|
37
|
-
end
|
38
|
-
helper_method :cadenero_user
|
39
|
-
|
40
|
-
}
|
41
|
-
application_controller.should include(expected_cadenero_user_method)
|
42
|
-
end
|
19
|
+
|
43
20
|
|
44
21
|
it "seeds the database" do
|
45
22
|
Cadenero::V1::Account.count.should == 0
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cadenero
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.2.
|
4
|
+
version: 0.0.2.a1
|
5
5
|
prerelease: 6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-06-
|
12
|
+
date: 2013-06-28 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails-api
|
@@ -235,9 +235,9 @@ files:
|
|
235
235
|
- app/assets/stylesheets/cadenero/v1/users.css
|
236
236
|
- app/controllers/cadenero/application_controller.rb
|
237
237
|
- app/controllers/cadenero/v1/account/dashboard_controller.rb
|
238
|
+
- app/controllers/cadenero/v1/account/sessions_controller.rb
|
238
239
|
- app/controllers/cadenero/v1/account/users_controller.rb
|
239
240
|
- app/controllers/cadenero/v1/accounts_controller.rb
|
240
|
-
- app/controllers/cadenero/v1/sessions_controller.rb
|
241
241
|
- app/extenders/controllers/application_controller_decorator.rb
|
242
242
|
- app/helpers/cadenero/application_helper.rb
|
243
243
|
- app/helpers/cadenero/v1/accounts_helper.rb
|
@@ -282,6 +282,7 @@ files:
|
|
282
282
|
- spec/dummy/config/routes.rb
|
283
283
|
- spec/dummy/config.ru
|
284
284
|
- spec/dummy/db/schema.rb
|
285
|
+
- spec/dummy/db/seeds.rb
|
285
286
|
- spec/dummy/log/development.log
|
286
287
|
- spec/dummy/log/test.log
|
287
288
|
- spec/dummy/public/404.html
|
@@ -292,8 +293,14 @@ files:
|
|
292
293
|
- spec/dummy/README.rdoc
|
293
294
|
- spec/dummy/script/rails
|
294
295
|
- spec/dummy/spec/spec_helper.rb
|
296
|
+
- spec/dummy/tmp/cache/assets/D0B/E90/sprockets%2F2c56f5dc65ded8014ad1226c5c985124
|
297
|
+
- spec/dummy/tmp/cache/assets/D86/490/sprockets%2Faaf0d4667cf7ef62869d70539bc77af7
|
298
|
+
- spec/dummy/tmp/cache/assets/DA6/CC0/sprockets%2F1c575d7a7db598dfcf41536ccc83f01e
|
299
|
+
- spec/dummy/tmp/cache/assets/DB6/250/sprockets%2F0f882b7b9528900cfec89e8b2fffcc38
|
300
|
+
- spec/dummy/tmp/cache/assets/E18/9D0/sprockets%2F1f79e8f926ea465ded9dcc552cd56bff
|
295
301
|
- spec/dummy/tmp/ember-rails/ember-data.js
|
296
302
|
- spec/dummy/tmp/ember-rails/ember.js
|
303
|
+
- spec/dummy/tmp/restart.txt
|
297
304
|
- spec/features/accounts/sign_up_spec.rb
|
298
305
|
- spec/features/cadenero/account_spec.rb
|
299
306
|
- spec/features/users/sign_in_spec.rb
|
@@ -348,6 +355,7 @@ test_files:
|
|
348
355
|
- spec/dummy/config/routes.rb
|
349
356
|
- spec/dummy/config.ru
|
350
357
|
- spec/dummy/db/schema.rb
|
358
|
+
- spec/dummy/db/seeds.rb
|
351
359
|
- spec/dummy/log/development.log
|
352
360
|
- spec/dummy/log/test.log
|
353
361
|
- spec/dummy/public/404.html
|
@@ -358,8 +366,14 @@ test_files:
|
|
358
366
|
- spec/dummy/README.rdoc
|
359
367
|
- spec/dummy/script/rails
|
360
368
|
- spec/dummy/spec/spec_helper.rb
|
369
|
+
- spec/dummy/tmp/cache/assets/D0B/E90/sprockets%2F2c56f5dc65ded8014ad1226c5c985124
|
370
|
+
- spec/dummy/tmp/cache/assets/D86/490/sprockets%2Faaf0d4667cf7ef62869d70539bc77af7
|
371
|
+
- spec/dummy/tmp/cache/assets/DA6/CC0/sprockets%2F1c575d7a7db598dfcf41536ccc83f01e
|
372
|
+
- spec/dummy/tmp/cache/assets/DB6/250/sprockets%2F0f882b7b9528900cfec89e8b2fffcc38
|
373
|
+
- spec/dummy/tmp/cache/assets/E18/9D0/sprockets%2F1f79e8f926ea465ded9dcc552cd56bff
|
361
374
|
- spec/dummy/tmp/ember-rails/ember-data.js
|
362
375
|
- spec/dummy/tmp/ember-rails/ember.js
|
376
|
+
- spec/dummy/tmp/restart.txt
|
363
377
|
- spec/features/accounts/sign_up_spec.rb
|
364
378
|
- spec/features/cadenero/account_spec.rb
|
365
379
|
- spec/features/users/sign_in_spec.rb
|
@@ -1,13 +0,0 @@
|
|
1
|
-
require_dependency "cadenero/application_controller"
|
2
|
-
|
3
|
-
module Cadenero::V1
|
4
|
-
class Account::SessionsController < Cadenero::ApplicationController
|
5
|
-
def create
|
6
|
-
if env['warden'].authenticate(:scope => :user)
|
7
|
-
render json: current_user, status: 201
|
8
|
-
else
|
9
|
-
render json: {errors: {user:["Invalid email or password"]}}, status: 422
|
10
|
-
end
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|