devise_token_auth 0.1.37.beta4 → 0.1.37

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.

Potentially problematic release.


This version of devise_token_auth might be problematic. Click here for more details.

Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3 -2
  3. data/app/controllers/devise_token_auth/application_controller.rb +4 -0
  4. data/app/controllers/devise_token_auth/omniauth_callbacks_controller.rb +5 -5
  5. data/app/controllers/devise_token_auth/passwords_controller.rb +3 -3
  6. data/app/controllers/devise_token_auth/registrations_controller.rb +9 -8
  7. data/app/controllers/devise_token_auth/sessions_controller.rb +3 -3
  8. data/app/controllers/devise_token_auth/token_validations_controller.rb +2 -2
  9. data/app/models/devise_token_auth/concerns/user.rb +17 -3
  10. data/app/validators/email_validator.rb +6 -6
  11. data/config/locales/de.yml +12 -12
  12. data/config/locales/en.yml +20 -20
  13. data/config/locales/es.yml +24 -24
  14. data/config/locales/fr.yml +17 -17
  15. data/config/locales/pl.yml +15 -15
  16. data/config/locales/pt-BR.yml +9 -12
  17. data/config/locales/pt.yml +7 -7
  18. data/config/locales/ru.yml +18 -18
  19. data/config/locales/zh-HK.yml +49 -0
  20. data/config/locales/zh-TW.yml +49 -0
  21. data/lib/devise_token_auth/controllers/helpers.rb +11 -7
  22. data/lib/devise_token_auth/engine.rb +3 -1
  23. data/lib/devise_token_auth/rails/routes.rb +7 -1
  24. data/lib/devise_token_auth/version.rb +1 -1
  25. data/lib/generators/devise_token_auth/templates/devise_token_auth.rb +2 -2
  26. data/test/controllers/demo_user_controller_test.rb +42 -0
  27. data/test/controllers/devise_token_auth/omniauth_callbacks_controller_test.rb +0 -13
  28. data/test/controllers/devise_token_auth/token_validations_controller_test.rb +25 -0
  29. data/test/dummy/app/controllers/application_controller.rb +6 -5
  30. data/test/dummy/{tmp/generators/app/models/user.rb → app/models/scoped_user.rb} +1 -5
  31. data/test/dummy/config/routes.rb +13 -0
  32. data/test/dummy/{tmp/generators/db/migrate/20151027080542_devise_token_auth_create_users.rb → db/migrate/20160103235141_devise_token_auth_create_scoped_users.rb} +15 -9
  33. data/test/dummy/db/schema.rb +30 -1
  34. data/test/dummy/tmp/generators/app/views/devise/mailer/confirmation_instructions.html.erb +5 -0
  35. data/test/dummy/tmp/generators/app/views/devise/mailer/reset_password_instructions.html.erb +8 -0
  36. metadata +27 -17
  37. data/test/dummy/tmp/generators/config/initializers/devise_token_auth.rb +0 -28
@@ -17,7 +17,6 @@ class OmniauthTest < ActionDispatch::IntegrationTest
17
17
  end
18
18
 
19
19
  describe 'success callback' do
20
-
21
20
  setup do
22
21
  OmniAuth.config.mock_auth[:facebook] = OmniAuth::AuthHash.new({
23
22
  :provider => 'facebook',
@@ -125,13 +124,11 @@ class OmniauthTest < ActionDispatch::IntegrationTest
125
124
  end
126
125
 
127
126
  describe "oauth registration attr" do
128
-
129
127
  after do
130
128
  User.any_instance.unstub(:new_record?)
131
129
  end
132
130
 
133
131
  describe 'with new user' do
134
-
135
132
  before do
136
133
  User.any_instance.expects(:new_record?).returns(true).at_least_once
137
134
  end
@@ -148,7 +145,6 @@ class OmniauthTest < ActionDispatch::IntegrationTest
148
145
  end
149
146
 
150
147
  describe 'with existing user' do
151
-
152
148
  before do
153
149
  User.any_instance.expects(:new_record?).returns(false).at_least_once
154
150
  end
@@ -191,7 +187,6 @@ class OmniauthTest < ActionDispatch::IntegrationTest
191
187
  end
192
188
 
193
189
  describe 'with omniauth_window_type=inAppBrowser' do
194
-
195
190
  test 'response contains all expected data' do
196
191
  get_success(omniauth_window_type: 'inAppBrowser')
197
192
  assert_expected_data_in_new_window
@@ -200,7 +195,6 @@ class OmniauthTest < ActionDispatch::IntegrationTest
200
195
  end
201
196
 
202
197
  describe 'with omniauth_window_type=newWindow' do
203
-
204
198
  test 'response contains all expected data' do
205
199
  get_success(omniauth_window_type: 'newWindow')
206
200
  assert_expected_data_in_new_window
@@ -216,7 +210,6 @@ class OmniauthTest < ActionDispatch::IntegrationTest
216
210
  end
217
211
 
218
212
  describe 'with omniauth_window_type=sameWindow' do
219
-
220
213
  test 'redirects to auth_origin_url with all expected query params' do
221
214
  get_via_redirect '/auth/facebook', {
222
215
  auth_origin_url: '/auth_origin',
@@ -247,14 +240,9 @@ class OmniauthTest < ActionDispatch::IntegrationTest
247
240
  assert_equal 200, response.status
248
241
  @resource = assigns(:resource)
249
242
  end
250
-
251
-
252
-
253
243
  end
254
244
 
255
245
  describe 'failure callback' do
256
-
257
-
258
246
  setup do
259
247
  OmniAuth.config.mock_auth[:facebook] = :invalid_credentials
260
248
  OmniAuth.config.on_failure = Proc.new { |env|
@@ -280,7 +268,6 @@ class OmniauthTest < ActionDispatch::IntegrationTest
280
268
  assert_equal 200, response.status
281
269
  assert_select "body", "invalid_credentials"
282
270
  end
283
-
284
271
  end
285
272
 
286
273
  describe 'User with only :database_authenticatable and :registerable included' do
@@ -63,4 +63,29 @@ class DeviseTokenAuth::TokenValidationsControllerTest < ActionDispatch::Integrat
63
63
  end
64
64
 
65
65
  end
66
+
67
+ describe 'using namespaces with unused resource' do
68
+
69
+ before do
70
+ @resource = scoped_users(:confirmed_email_user)
71
+ @resource.skip_confirmation!
72
+ @resource.save!
73
+
74
+ @auth_headers = @resource.create_new_auth_token
75
+
76
+ @token = @auth_headers['access-token']
77
+ @client_id = @auth_headers['client']
78
+ @expiry = @auth_headers['expiry']
79
+
80
+ # ensure that request is not treated as batch request
81
+ age_token(@resource, @client_id)
82
+ end
83
+
84
+ test "should be successful" do
85
+ get '/api_v2/auth/validate_token', {}, @auth_headers
86
+ assert_equal 200, response.status
87
+ end
88
+
89
+ end
90
+
66
91
  end
@@ -6,10 +6,11 @@ class ApplicationController < ActionController::Base
6
6
  protected
7
7
 
8
8
  def configure_permitted_parameters
9
- devise_parameter_sanitizer.for(:sign_up) << :operating_thetan
10
- devise_parameter_sanitizer.for(:sign_up) << :favorite_color
11
- devise_parameter_sanitizer.for(:account_update) << :operating_thetan
12
- devise_parameter_sanitizer.for(:account_update) << :favorite_color
13
- devise_parameter_sanitizer.for(:account_update) << :current_password
9
+ permitted_parameters = devise_parameter_sanitizer.instance_values['permitted']
10
+ permitted_parameters[:sign_up] << :operating_thetan
11
+ permitted_parameters[:sign_up] << :favorite_color
12
+ permitted_parameters[:account_update] << :operating_thetan
13
+ permitted_parameters[:account_update] << :favorite_color
14
+ permitted_parameters[:account_update] << :current_password
14
15
  end
15
16
  end
@@ -1,11 +1,7 @@
1
- class User < ActiveRecord::Base
1
+ class ScopedUser < ActiveRecord::Base
2
2
  # Include default devise modules.
3
3
  devise :database_authenticatable, :registerable,
4
4
  :recoverable, :rememberable, :trackable, :validatable,
5
5
  :confirmable, :omniauthable
6
6
  include DeviseTokenAuth::Concerns::User
7
-
8
- def whatever
9
- puts 'whatever'
10
- end
11
7
  end
@@ -41,6 +41,19 @@ Rails.application.routes.draw do
41
41
  end
42
42
  end
43
43
 
44
+ # test namespacing with not created devise mapping
45
+ namespace :api_v2, defaults: { format: :json } do
46
+ mount_devise_token_auth_for "ScopedUser",
47
+ at: "auth",
48
+ controllers: {
49
+ omniauth_callbacks: "api_v2/omniauth_callbacks",
50
+ sessions: "api_v2/sessions",
51
+ registrations: "api_v2/registrations",
52
+ confirmations: "api_v2/confirmations",
53
+ passwords: "api_v2/passwords"
54
+ }
55
+ end
56
+
44
57
  # this route will authorize visitors using the User class
45
58
  get 'demo/members_only', to: 'demo_user#members_only'
46
59
 
@@ -1,8 +1,10 @@
1
- class DeviseTokenAuthCreateUsers < ActiveRecord::Migration
1
+ include MigrationDatabaseHelper
2
+
3
+ class DeviseTokenAuthCreateScopedUsers < ActiveRecord::Migration
2
4
  def change
3
- create_table(:users) do |t|
5
+ create_table(:scoped_users) do |t|
4
6
  ## Required
5
- t.string :provider, :null => false, :default => "email"
7
+ t.string :provider, :null => false
6
8
  t.string :uid, :null => false, :default => ""
7
9
 
8
10
  ## Database authenticatable
@@ -40,15 +42,19 @@ class DeviseTokenAuthCreateUsers < ActiveRecord::Migration
40
42
  t.string :email
41
43
 
42
44
  ## Tokens
43
- t.text :tokens
45
+ if json_supported_database?
46
+ t.json :tokens
47
+ else
48
+ t.text :tokens
49
+ end
44
50
 
45
51
  t.timestamps
46
52
  end
47
53
 
48
- add_index :users, :email
49
- add_index :users, [:uid, :provider], :unique => true
50
- add_index :users, :reset_password_token, :unique => true
51
- # add_index :users, :confirmation_token, :unique => true
52
- # add_index :users, :unlock_token, :unique => true
54
+ add_index :scoped_users, :email
55
+ add_index :scoped_users, [:uid, :provider], :unique => true
56
+ add_index :scoped_users, :reset_password_token, :unique => true
57
+ # add_index :scoped_users, :confirmation_token, :unique => true
58
+ # add_index :scoped_users, :unlock_token, :unique => true
53
59
  end
54
60
  end
@@ -11,7 +11,7 @@
11
11
  #
12
12
  # It's strongly recommended that you check this file into your version control system.
13
13
 
14
- ActiveRecord::Schema.define(version: 20150708104536) do
14
+ ActiveRecord::Schema.define(version: 20160103235141) do
15
15
 
16
16
  create_table "evil_users", force: :cascade do |t|
17
17
  t.string "email"
@@ -122,6 +122,35 @@ ActiveRecord::Schema.define(version: 20150708104536) do
122
122
  add_index "only_email_users", ["email"], name: "index_only_email_users_on_email"
123
123
  add_index "only_email_users", ["uid", "provider"], name: "index_only_email_users_on_uid_and_provider", unique: true
124
124
 
125
+ create_table "scoped_users", force: :cascade do |t|
126
+ t.string "provider", null: false
127
+ t.string "uid", default: "", null: false
128
+ t.string "encrypted_password", default: "", null: false
129
+ t.string "reset_password_token"
130
+ t.datetime "reset_password_sent_at"
131
+ t.datetime "remember_created_at"
132
+ t.integer "sign_in_count", default: 0, null: false
133
+ t.datetime "current_sign_in_at"
134
+ t.datetime "last_sign_in_at"
135
+ t.string "current_sign_in_ip"
136
+ t.string "last_sign_in_ip"
137
+ t.string "confirmation_token"
138
+ t.datetime "confirmed_at"
139
+ t.datetime "confirmation_sent_at"
140
+ t.string "unconfirmed_email"
141
+ t.string "name"
142
+ t.string "nickname"
143
+ t.string "image"
144
+ t.string "email"
145
+ t.text "tokens"
146
+ t.datetime "created_at"
147
+ t.datetime "updated_at"
148
+ end
149
+
150
+ add_index "scoped_users", ["email"], name: "index_scoped_users_on_email"
151
+ add_index "scoped_users", ["reset_password_token"], name: "index_scoped_users_on_reset_password_token", unique: true
152
+ add_index "scoped_users", ["uid", "provider"], name: "index_scoped_users_on_uid_and_provider", unique: true
153
+
125
154
  create_table "unconfirmable_users", force: :cascade do |t|
126
155
  t.string "provider", null: false
127
156
  t.string "uid", default: "", null: false
@@ -0,0 +1,5 @@
1
+ <p><%= t(:welcome).capitalize + ' ' + @email %>!</p>
2
+
3
+ <p><%= t '.confirm_link_msg' %> </p>
4
+
5
+ <p><%= link_to t('.confirm_account_link'), confirmation_url(@resource, {confirmation_token: @token, config: message['client-config'].to_s, redirect_url: message['redirect-url']}).html_safe %></p>
@@ -0,0 +1,8 @@
1
+ <p><%= t(:hello).capitalize %> <%= @resource.email %>!</p>
2
+
3
+ <p><%= t '.request_reset_link_msg' %></p>
4
+
5
+ <p><%= link_to t('.password_change_link'), edit_password_url(@resource, reset_password_token: @token, config: message['client-config'].to_s, redirect_url: message['redirect-url'].to_s).html_safe %></p>
6
+
7
+ <p><%= t '.ignore_mail_msg' %></p>
8
+ <p><%= t '.no_changes_msg' %></p>
metadata CHANGED
@@ -1,43 +1,49 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: devise_token_auth
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.37.beta4
4
+ version: 0.1.37
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lynn Hurley
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-12-10 00:00:00.000000000 Z
11
+ date: 2016-01-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - "<"
18
18
  - !ruby/object:Gem::Version
19
- version: '4.2'
19
+ version: '6'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - "<"
25
25
  - !ruby/object:Gem::Version
26
- version: '4.2'
26
+ version: '6'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: devise
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">"
32
32
  - !ruby/object:Gem::Version
33
33
  version: 3.5.2
34
+ - - "<"
35
+ - !ruby/object:Gem::Version
36
+ version: '4.1'
34
37
  type: :runtime
35
38
  prerelease: false
36
39
  version_requirements: !ruby/object:Gem::Requirement
37
40
  requirements:
38
- - - "~>"
41
+ - - ">"
39
42
  - !ruby/object:Gem::Version
40
43
  version: 3.5.2
44
+ - - "<"
45
+ - !ruby/object:Gem::Version
46
+ version: '4.1'
41
47
  - !ruby/object:Gem::Dependency
42
48
  name: sqlite3
43
49
  requirement: !ruby/object:Gem::Requirement
@@ -113,6 +119,8 @@ files:
113
119
  - config/locales/pt-BR.yml
114
120
  - config/locales/pt.yml
115
121
  - config/locales/ru.yml
122
+ - config/locales/zh-HK.yml
123
+ - config/locales/zh-TW.yml
116
124
  - lib/devise_token_auth.rb
117
125
  - lib/devise_token_auth/controllers/helpers.rb
118
126
  - lib/devise_token_auth/controllers/url_helpers.rb
@@ -171,6 +179,7 @@ files:
171
179
  - test/dummy/app/models/mang.rb
172
180
  - test/dummy/app/models/nice_user.rb
173
181
  - test/dummy/app/models/only_email_user.rb
182
+ - test/dummy/app/models/scoped_user.rb
174
183
  - test/dummy/app/models/unconfirmable_user.rb
175
184
  - test/dummy/app/models/unregisterable_user.rb
176
185
  - test/dummy/app/models/user.rb
@@ -206,11 +215,11 @@ files:
206
215
  - test/dummy/db/migrate/20141222053502_devise_token_auth_create_unregisterable_users.rb
207
216
  - test/dummy/db/migrate/20150409095712_devise_token_auth_create_nice_users.rb
208
217
  - test/dummy/db/migrate/20150708104536_devise_token_auth_create_unconfirmable_users.rb
218
+ - test/dummy/db/migrate/20160103235141_devise_token_auth_create_scoped_users.rb
209
219
  - test/dummy/db/schema.rb
210
220
  - test/dummy/lib/migration_database_helper.rb
211
- - test/dummy/tmp/generators/app/models/user.rb
212
- - test/dummy/tmp/generators/config/initializers/devise_token_auth.rb
213
- - test/dummy/tmp/generators/db/migrate/20151027080542_devise_token_auth_create_users.rb
221
+ - test/dummy/tmp/generators/app/views/devise/mailer/confirmation_instructions.html.erb
222
+ - test/dummy/tmp/generators/app/views/devise/mailer/reset_password_instructions.html.erb
214
223
  - test/integration/navigation_test.rb
215
224
  - test/lib/devise_token_auth/url_test.rb
216
225
  - test/lib/generators/devise_token_auth/install_generator_test.rb
@@ -233,12 +242,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
233
242
  version: '0'
234
243
  required_rubygems_version: !ruby/object:Gem::Requirement
235
244
  requirements:
236
- - - ">"
245
+ - - ">="
237
246
  - !ruby/object:Gem::Version
238
- version: 1.3.1
247
+ version: '0'
239
248
  requirements: []
240
249
  rubyforge_project:
241
- rubygems_version: 2.2.2
250
+ rubygems_version: 2.4.8
242
251
  signing_key:
243
252
  specification_version: 4
244
253
  summary: Token based authentication for rails. Uses Devise + OmniAuth.
@@ -286,6 +295,7 @@ test_files:
286
295
  - test/dummy/app/models/mang.rb
287
296
  - test/dummy/app/models/nice_user.rb
288
297
  - test/dummy/app/models/only_email_user.rb
298
+ - test/dummy/app/models/scoped_user.rb
289
299
  - test/dummy/app/models/unconfirmable_user.rb
290
300
  - test/dummy/app/models/unregisterable_user.rb
291
301
  - test/dummy/app/models/user.rb
@@ -321,12 +331,12 @@ test_files:
321
331
  - test/dummy/db/migrate/20141222053502_devise_token_auth_create_unregisterable_users.rb
322
332
  - test/dummy/db/migrate/20150409095712_devise_token_auth_create_nice_users.rb
323
333
  - test/dummy/db/migrate/20150708104536_devise_token_auth_create_unconfirmable_users.rb
334
+ - test/dummy/db/migrate/20160103235141_devise_token_auth_create_scoped_users.rb
324
335
  - test/dummy/db/schema.rb
325
336
  - test/dummy/lib/migration_database_helper.rb
326
337
  - test/dummy/README.rdoc
327
- - test/dummy/tmp/generators/app/models/user.rb
328
- - test/dummy/tmp/generators/config/initializers/devise_token_auth.rb
329
- - test/dummy/tmp/generators/db/migrate/20151027080542_devise_token_auth_create_users.rb
338
+ - test/dummy/tmp/generators/app/views/devise/mailer/confirmation_instructions.html.erb
339
+ - test/dummy/tmp/generators/app/views/devise/mailer/reset_password_instructions.html.erb
330
340
  - test/integration/navigation_test.rb
331
341
  - test/lib/devise_token_auth/url_test.rb
332
342
  - test/lib/generators/devise_token_auth/install_generator_test.rb
@@ -1,28 +0,0 @@
1
- DeviseTokenAuth.setup do |config|
2
- # By default the authorization headers will change after each request. The
3
- # client is responsible for keeping track of the changing tokens. Change
4
- # this to false to prevent the Authorization header from changing after
5
- # each request.
6
- #config.change_headers_on_each_request = true
7
-
8
- # By default, users will need to re-authenticate after 2 weeks. This setting
9
- # determines how long tokens will remain valid after they are issued.
10
- #config.token_lifespan = 2.weeks
11
-
12
- # Sometimes it's necessary to make several requests to the API at the same
13
- # time. In this case, each request in the batch will need to share the same
14
- # auth token. This setting determines how far apart the requests can be while
15
- # still using the same auth token.
16
- #config.batch_request_buffer_throttle = 5.seconds
17
-
18
- # This route will be the prefix for all oauth2 redirect callbacks. For
19
- # example, using the default '/omniauth', the github oauth2 provider will
20
- # redirect successful authentications to '/omniauth/github/callback'
21
- #config.omniauth_prefix = "/omniauth"
22
-
23
- # By defult sending current password is not needed for the password update.
24
- # Uncomment to enforce current_password param to be checked before all
25
- # attribute updates. Set it to :password if you want it to be checked only if
26
- # password is updated.
27
- # config.check_current_password_before_update = :attributes
28
- end