devise_token_auth 1.0.0 → 1.1.5

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.
Files changed (126) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +4 -2
  3. data/app/controllers/devise_token_auth/application_controller.rb +2 -3
  4. data/app/controllers/devise_token_auth/concerns/resource_finder.rb +11 -12
  5. data/app/controllers/devise_token_auth/concerns/set_user_by_token.rb +41 -57
  6. data/app/controllers/devise_token_auth/confirmations_controller.rb +63 -20
  7. data/app/controllers/devise_token_auth/omniauth_callbacks_controller.rb +77 -29
  8. data/app/controllers/devise_token_auth/passwords_controller.rb +44 -30
  9. data/app/controllers/devise_token_auth/registrations_controller.rb +33 -40
  10. data/app/controllers/devise_token_auth/sessions_controller.rb +5 -5
  11. data/app/controllers/devise_token_auth/unlocks_controller.rb +4 -4
  12. data/app/models/devise_token_auth/concerns/active_record_support.rb +14 -0
  13. data/app/models/devise_token_auth/concerns/confirmable_support.rb +28 -0
  14. data/app/models/devise_token_auth/concerns/mongoid_support.rb +19 -0
  15. data/app/models/devise_token_auth/concerns/tokens_serialization.rb +31 -0
  16. data/app/models/devise_token_auth/concerns/user.rb +51 -70
  17. data/app/models/devise_token_auth/concerns/user_omniauth_callbacks.rb +6 -3
  18. data/app/validators/{email_validator.rb → devise_token_auth_email_validator.rb} +2 -2
  19. data/config/locales/da-DK.yml +2 -0
  20. data/config/locales/de.yml +2 -0
  21. data/config/locales/en.yml +7 -0
  22. data/config/locales/es.yml +2 -0
  23. data/config/locales/fr.yml +2 -0
  24. data/config/locales/he.yml +52 -0
  25. data/config/locales/it.yml +2 -0
  26. data/config/locales/ja.yml +4 -2
  27. data/config/locales/ko.yml +51 -0
  28. data/config/locales/nl.yml +2 -0
  29. data/config/locales/pl.yml +6 -3
  30. data/config/locales/pt-BR.yml +2 -0
  31. data/config/locales/pt.yml +6 -3
  32. data/config/locales/ro.yml +2 -0
  33. data/config/locales/ru.yml +2 -0
  34. data/config/locales/sq.yml +2 -0
  35. data/config/locales/sv.yml +2 -0
  36. data/config/locales/uk.yml +2 -0
  37. data/config/locales/vi.yml +2 -0
  38. data/config/locales/zh-CN.yml +2 -0
  39. data/config/locales/zh-HK.yml +2 -0
  40. data/config/locales/zh-TW.yml +2 -0
  41. data/lib/devise_token_auth/blacklist.rb +2 -0
  42. data/lib/devise_token_auth/controllers/helpers.rb +5 -9
  43. data/lib/devise_token_auth/engine.rb +7 -1
  44. data/lib/devise_token_auth/rails/routes.rb +16 -11
  45. data/lib/devise_token_auth/token_factory.rb +126 -0
  46. data/lib/devise_token_auth/url.rb +3 -0
  47. data/lib/devise_token_auth/version.rb +1 -1
  48. data/lib/devise_token_auth.rb +6 -3
  49. data/lib/generators/devise_token_auth/USAGE +1 -1
  50. data/lib/generators/devise_token_auth/install_generator.rb +7 -91
  51. data/lib/generators/devise_token_auth/install_generator_helpers.rb +98 -0
  52. data/lib/generators/devise_token_auth/install_mongoid_generator.rb +46 -0
  53. data/lib/generators/devise_token_auth/templates/devise_token_auth.rb +10 -0
  54. data/lib/generators/devise_token_auth/templates/devise_token_auth_create_users.rb.erb +1 -8
  55. data/lib/generators/devise_token_auth/templates/user.rb.erb +2 -2
  56. data/lib/generators/devise_token_auth/templates/user_mongoid.rb.erb +56 -0
  57. data/test/controllers/custom/custom_confirmations_controller_test.rb +1 -1
  58. data/test/controllers/demo_user_controller_test.rb +2 -2
  59. data/test/controllers/devise_token_auth/confirmations_controller_test.rb +83 -19
  60. data/test/controllers/devise_token_auth/omniauth_callbacks_controller_test.rb +109 -42
  61. data/test/controllers/devise_token_auth/passwords_controller_test.rb +227 -102
  62. data/test/controllers/devise_token_auth/registrations_controller_test.rb +34 -7
  63. data/test/controllers/devise_token_auth/sessions_controller_test.rb +0 -38
  64. data/test/controllers/devise_token_auth/token_validations_controller_test.rb +2 -1
  65. data/test/dummy/app/active_record/confirmable_user.rb +11 -0
  66. data/test/dummy/app/{models → active_record}/scoped_user.rb +2 -2
  67. data/test/dummy/app/{models → active_record}/unconfirmable_user.rb +1 -2
  68. data/test/dummy/app/{models → active_record}/unregisterable_user.rb +3 -3
  69. data/test/dummy/app/active_record/user.rb +6 -0
  70. data/test/dummy/app/controllers/overrides/confirmations_controller.rb +3 -3
  71. data/test/dummy/app/controllers/overrides/passwords_controller.rb +3 -3
  72. data/test/dummy/app/controllers/overrides/registrations_controller.rb +1 -1
  73. data/test/dummy/app/controllers/overrides/sessions_controller.rb +2 -2
  74. data/test/dummy/app/models/{user.rb → concerns/favorite_color.rb} +7 -8
  75. data/test/dummy/app/mongoid/confirmable_user.rb +52 -0
  76. data/test/dummy/app/mongoid/lockable_user.rb +38 -0
  77. data/test/dummy/app/mongoid/mang.rb +46 -0
  78. data/test/dummy/app/mongoid/only_email_user.rb +33 -0
  79. data/test/dummy/app/mongoid/scoped_user.rb +50 -0
  80. data/test/dummy/app/mongoid/unconfirmable_user.rb +44 -0
  81. data/test/dummy/app/mongoid/unregisterable_user.rb +47 -0
  82. data/test/dummy/app/mongoid/user.rb +49 -0
  83. data/test/dummy/app/views/layouts/application.html.erb +0 -2
  84. data/test/dummy/config/application.rb +22 -1
  85. data/test/dummy/config/boot.rb +4 -0
  86. data/test/dummy/config/environments/development.rb +0 -10
  87. data/test/dummy/config/environments/production.rb +0 -16
  88. data/test/dummy/config/initializers/devise.rb +285 -0
  89. data/test/dummy/config/initializers/devise_token_auth.rb +35 -4
  90. data/test/dummy/config/initializers/figaro.rb +1 -1
  91. data/test/dummy/config/initializers/omniauth.rb +1 -0
  92. data/test/dummy/config/routes.rb +2 -0
  93. data/test/dummy/db/migrate/20140715061447_devise_token_auth_create_users.rb +0 -7
  94. data/test/dummy/db/migrate/20140715061805_devise_token_auth_create_mangs.rb +0 -7
  95. data/test/dummy/db/migrate/20141222035835_devise_token_auth_create_only_email_users.rb +0 -7
  96. data/test/dummy/db/migrate/20141222053502_devise_token_auth_create_unregisterable_users.rb +0 -7
  97. data/test/dummy/db/migrate/20150708104536_devise_token_auth_create_unconfirmable_users.rb +0 -7
  98. data/test/dummy/db/migrate/20160103235141_devise_token_auth_create_scoped_users.rb +0 -7
  99. data/test/dummy/db/migrate/20160629184441_devise_token_auth_create_lockable_users.rb +0 -7
  100. data/test/dummy/db/migrate/20190924101113_devise_token_auth_create_confirmable_users.rb +49 -0
  101. data/test/dummy/db/schema.rb +26 -28
  102. data/test/dummy/tmp/generators/app/models/azpire/v1/human_resource/user.rb +9 -0
  103. data/test/dummy/tmp/generators/config/initializers/devise_token_auth.rb +60 -0
  104. data/test/dummy/tmp/generators/db/migrate/20210126004321_devise_token_auth_create_azpire_v1_human_resource_users.rb +49 -0
  105. data/test/factories/users.rb +3 -2
  106. data/test/lib/devise_token_auth/blacklist_test.rb +11 -0
  107. data/test/lib/devise_token_auth/rails/custom_routes_test.rb +29 -0
  108. data/test/lib/devise_token_auth/rails/routes_test.rb +87 -0
  109. data/test/lib/devise_token_auth/token_factory_test.rb +191 -0
  110. data/test/lib/devise_token_auth/url_test.rb +2 -2
  111. data/test/lib/generators/devise_token_auth/install_generator_test.rb +51 -31
  112. data/test/lib/generators/devise_token_auth/install_generator_with_namespace_test.rb +51 -31
  113. data/test/models/concerns/mongoid_support_test.rb +31 -0
  114. data/test/models/concerns/tokens_serialization_test.rb +104 -0
  115. data/test/models/confirmable_user_test.rb +35 -0
  116. data/test/models/only_email_user_test.rb +0 -8
  117. data/test/models/user_test.rb +1 -33
  118. data/test/test_helper.rb +13 -3
  119. metadata +125 -32
  120. data/config/initializers/devise.rb +0 -198
  121. data/test/dummy/config/initializers/assets.rb +0 -10
  122. data/test/dummy/tmp/generators/app/views/devise/mailer/confirmation_instructions.html.erb +0 -5
  123. data/test/dummy/tmp/generators/app/views/devise/mailer/reset_password_instructions.html.erb +0 -8
  124. /data/test/dummy/app/{models → active_record}/lockable_user.rb +0 -0
  125. /data/test/dummy/app/{models → active_record}/mang.rb +0 -0
  126. /data/test/dummy/app/{models → active_record}/only_email_user.rb +0 -0
@@ -83,6 +83,33 @@ class DeviseTokenAuth::RegistrationsControllerTest < ActionDispatch::Integration
83
83
  end
84
84
  end
85
85
 
86
+ describe 'using allow_unconfirmed_access_for' do
87
+ before do
88
+ @original_duration = Devise.allow_unconfirmed_access_for
89
+ Devise.allow_unconfirmed_access_for = nil
90
+ post '/auth',
91
+ params: {
92
+ email: Faker::Internet.email,
93
+ password: 'secret123',
94
+ password_confirmation: 'secret123',
95
+ confirm_success_url: Faker::Internet.url,
96
+ unpermitted_param: '(x_x)'
97
+ }
98
+ end
99
+
100
+ test 'auth headers were returned in response' do
101
+ assert response.headers['access-token']
102
+ assert response.headers['token-type']
103
+ assert response.headers['client']
104
+ assert response.headers['expiry']
105
+ assert response.headers['uid']
106
+ end
107
+
108
+ after do
109
+ Devise.allow_unconfirmed_access_for = @original_duration
110
+ end
111
+ end
112
+
86
113
  describe 'using "+" in email' do
87
114
  test 'can use + sign in email addresses' do
88
115
  @plus_email = 'ak+testing@gmail.com'
@@ -305,7 +332,7 @@ class DeviseTokenAuth::RegistrationsControllerTest < ActionDispatch::Integration
305
332
  end
306
333
 
307
334
  test 'user should not have been created' do
308
- assert_nil @resource.id
335
+ refute @resource.persisted?
309
336
  end
310
337
 
311
338
  test 'error should be returned in the response' do
@@ -333,7 +360,7 @@ class DeviseTokenAuth::RegistrationsControllerTest < ActionDispatch::Integration
333
360
  end
334
361
 
335
362
  test 'user should not have been created' do
336
- assert_nil @resource.id
363
+ refute @resource.persisted?
337
364
  end
338
365
 
339
366
  test 'error should be returned in the response' do
@@ -362,7 +389,7 @@ class DeviseTokenAuth::RegistrationsControllerTest < ActionDispatch::Integration
362
389
  end
363
390
 
364
391
  test 'user should have been created' do
365
- assert_nil @resource.id
392
+ refute @resource.persisted?
366
393
  end
367
394
 
368
395
  test 'error should be returned in the response' do
@@ -393,7 +420,7 @@ class DeviseTokenAuth::RegistrationsControllerTest < ActionDispatch::Integration
393
420
  end
394
421
 
395
422
  test 'user should have been created' do
396
- assert_nil @resource.id
423
+ refute @resource.persisted?
397
424
  end
398
425
 
399
426
  test 'error should be returned in the response' do
@@ -465,7 +492,7 @@ class DeviseTokenAuth::RegistrationsControllerTest < ActionDispatch::Integration
465
492
  # test valid update param
466
493
  @resource_class = User
467
494
  @new_operating_thetan = 1_000_000
468
- @email = 'AlternatingCase2@example.com'
495
+ @email = Faker::Internet.safe_email
469
496
  @request_params = {
470
497
  operating_thetan: @new_operating_thetan,
471
498
  email: @email
@@ -572,7 +599,7 @@ class DeviseTokenAuth::RegistrationsControllerTest < ActionDispatch::Integration
572
599
  # test valid update param
573
600
  @resource_class = User
574
601
  @new_operating_thetan = 1_000_000
575
- @email = 'AlternatingCase2@example.com'
602
+ @email = Faker::Internet.safe_email
576
603
  @request_params = {
577
604
  operating_thetan: @new_operating_thetan,
578
605
  email: @email
@@ -623,7 +650,7 @@ class DeviseTokenAuth::RegistrationsControllerTest < ActionDispatch::Integration
623
650
  before do
624
651
  DeviseTokenAuth.check_current_password_before_update = :password
625
652
  @new_operating_thetan = 1_000_000
626
- @email = 'AlternatingCase2@example.com'
653
+ @email = Faker::Internet.safe_email
627
654
  end
628
655
 
629
656
  after do
@@ -17,12 +17,6 @@ class DeviseTokenAuth::SessionsControllerTest < ActionController::TestCase
17
17
 
18
18
  describe 'success' do
19
19
  before do
20
- @old_sign_in_count = @existing_user.sign_in_count
21
- @old_current_sign_in_at = @existing_user.current_sign_in_at
22
- @old_last_sign_in_at = @existing_user.last_sign_in_at
23
- @old_sign_in_ip = @existing_user.current_sign_in_ip
24
- @old_last_sign_in_ip = @existing_user.last_sign_in_ip
25
-
26
20
  post :create,
27
21
  params: {
28
22
  email: @existing_user.email,
@@ -31,12 +25,6 @@ class DeviseTokenAuth::SessionsControllerTest < ActionController::TestCase
31
25
 
32
26
  @resource = assigns(:resource)
33
27
  @data = JSON.parse(response.body)
34
-
35
- @new_sign_in_count = @resource.sign_in_count
36
- @new_current_sign_in_at = @resource.current_sign_in_at
37
- @new_last_sign_in_at = @resource.last_sign_in_at
38
- @new_sign_in_ip = @resource.current_sign_in_ip
39
- @new_last_sign_in_ip = @resource.last_sign_in_ip
40
28
  end
41
29
 
42
30
  test 'request should succeed' do
@@ -47,32 +35,6 @@ class DeviseTokenAuth::SessionsControllerTest < ActionController::TestCase
47
35
  assert_equal @existing_user.email, @data['data']['email']
48
36
  end
49
37
 
50
- describe 'trackable' do
51
- test 'sign_in_count incrementns' do
52
- assert_equal @old_sign_in_count + 1, @new_sign_in_count
53
- end
54
-
55
- test 'current_sign_in_at is updated' do
56
- refute @old_current_sign_in_at
57
- assert @new_current_sign_in_at
58
- end
59
-
60
- test 'last_sign_in_at is updated' do
61
- refute @old_last_sign_in_at
62
- assert @new_last_sign_in_at
63
- end
64
-
65
- test 'sign_in_ip is updated' do
66
- refute @old_sign_in_ip
67
- assert_equal '0.0.0.0', @new_sign_in_ip
68
- end
69
-
70
- test 'last_sign_in_ip is updated' do
71
- refute @old_last_sign_in_ip
72
- assert_equal '0.0.0.0', @new_last_sign_in_ip
73
- end
74
- end
75
-
76
38
  describe "with multiple clients and headers don't change in each request" do
77
39
  before do
78
40
  # Set the max_number_of_devices to a lower number
@@ -47,7 +47,8 @@ class DeviseTokenAuth::TokenValidationsControllerTest < ActionDispatch::Integrat
47
47
 
48
48
  describe 'with invalid user' do
49
49
  before do
50
- @resource.update_column :email, 'invalid'
50
+ @resource.update_column(:email, 'invalid') if DEVISE_TOKEN_AUTH_ORM == :active_record
51
+ @resource.set(email: 'invalid') if DEVISE_TOKEN_AUTH_ORM == :mongoid
51
52
  end
52
53
 
53
54
  test 'request should raise invalid model error' do
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ class ConfirmableUser < ActiveRecord::Base
4
+ # Include default devise modules.
5
+ devise :database_authenticatable, :registerable,
6
+ :recoverable, :rememberable,
7
+ :validatable, :confirmable
8
+ DeviseTokenAuth.send_confirmation_email = true
9
+ include DeviseTokenAuth::Concerns::User
10
+ DeviseTokenAuth.send_confirmation_email = false
11
+ end
@@ -3,7 +3,7 @@
3
3
  class ScopedUser < ActiveRecord::Base
4
4
  # Include default devise modules.
5
5
  devise :database_authenticatable, :registerable,
6
- :recoverable, :rememberable, :trackable, :validatable,
7
- :confirmable, :omniauthable
6
+ :recoverable, :rememberable,
7
+ :validatable, :confirmable, :omniauthable
8
8
  include DeviseTokenAuth::Concerns::User
9
9
  end
@@ -4,7 +4,6 @@ class UnconfirmableUser < ActiveRecord::Base
4
4
  # Include default devise modules.
5
5
  devise :database_authenticatable, :registerable,
6
6
  :recoverable, :rememberable,
7
- :trackable, :validatable,
8
- :omniauthable
7
+ :validatable, :omniauthable
9
8
  include DeviseTokenAuth::Concerns::User
10
9
  end
@@ -2,8 +2,8 @@
2
2
 
3
3
  class UnregisterableUser < ActiveRecord::Base
4
4
  # Include default devise modules.
5
- devise :database_authenticatable,
6
- :recoverable, :trackable, :validatable,
7
- :confirmable, :omniauthable
5
+ devise :database_authenticatable, :recoverable,
6
+ :validatable, :confirmable,
7
+ :omniauthable
8
8
  include DeviseTokenAuth::Concerns::User
9
9
  end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ class User < ActiveRecord::Base
4
+ include DeviseTokenAuth::Concerns::User
5
+ include FavoriteColor
6
+ end
@@ -6,7 +6,7 @@ module Overrides
6
6
  @resource = resource_class.confirm_by_token(params[:confirmation_token])
7
7
 
8
8
  if @resource && @resource.id
9
- client_id, token = @resource.create_token
9
+ token = @resource.create_token
10
10
  @resource.save!
11
11
 
12
12
  redirect_header_options = {
@@ -14,8 +14,8 @@ module Overrides
14
14
  config: params[:config],
15
15
  override_proof: '(^^,)'
16
16
  }
17
- redirect_headers = build_redirect_headers(token,
18
- client_id,
17
+ redirect_headers = build_redirect_headers(token.token,
18
+ token.client,
19
19
  redirect_header_options)
20
20
 
21
21
  redirect_to(@resource.build_auth_url(params[:redirect_url],
@@ -11,7 +11,7 @@ module Overrides
11
11
  )
12
12
 
13
13
  if @resource && @resource.id
14
- client_id, token = @resource.create_token
14
+ token = @resource.create_token
15
15
 
16
16
  # ensure that user is confirmed
17
17
  @resource.skip_confirmation! unless @resource.confirmed_at
@@ -22,8 +22,8 @@ module Overrides
22
22
  override_proof: OVERRIDE_PROOF,
23
23
  reset_password: true
24
24
  }
25
- redirect_headers = build_redirect_headers(token,
26
- client_id,
25
+ redirect_headers = build_redirect_headers(token.token,
26
+ token.client,
27
27
  redirect_header_options)
28
28
  redirect_to(@resource.build_auth_url(params[:redirect_url],
29
29
  redirect_headers))
@@ -6,7 +6,7 @@ module Overrides
6
6
 
7
7
  def update
8
8
  if @resource
9
- if @resource.update_attributes(account_update_params)
9
+ if @resource.update(account_update_params)
10
10
  render json: {
11
11
  status: 'success',
12
12
  data: @resource.as_json,
@@ -5,10 +5,10 @@ module Overrides
5
5
  OVERRIDE_PROOF = '(^^,)'.freeze
6
6
 
7
7
  def create
8
- @resource = resource_class.find_by(email: resource_params[:email])
8
+ @resource = resource_class.dta_find_by(email: resource_params[:email])
9
9
 
10
10
  if @resource && valid_params?(:email, resource_params[:email]) && @resource.valid_password?(resource_params[:password]) && @resource.confirmed?
11
- @client_id, @token = @resource.create_token
11
+ @token = @resource.create_token
12
12
  @resource.save
13
13
 
14
14
  render json: {
@@ -1,13 +1,12 @@
1
- # frozen_string_literal: true
2
-
3
- class User < ActiveRecord::Base
4
- include DeviseTokenAuth::Concerns::User
5
-
6
- validates :operating_thetan, numericality: true, allow_nil: true
7
- validate :ensure_correct_favorite_color
1
+ module FavoriteColor
2
+ extend ActiveSupport::Concern
8
3
 
4
+ included do
5
+ validates :operating_thetan, numericality: true, allow_nil: true
6
+ validate :ensure_correct_favorite_color
7
+ end
8
+
9
9
  def ensure_correct_favorite_color
10
-
11
10
  if favorite_color && (favorite_color != '')
12
11
  unless ApplicationHelper::COLOR_NAMES.any?{ |s| s.casecmp(favorite_color)==0 }
13
12
  matches = ApplicationHelper::COLOR_SEARCH.search(favorite_color)
@@ -0,0 +1,52 @@
1
+ # frozen_string_literal: true
2
+
3
+ class ConfirmableUser
4
+ include Mongoid::Document
5
+ include Mongoid::Timestamps
6
+ include Mongoid::Locker
7
+
8
+ field :locker_locked_at, type: Time
9
+ field :locker_locked_until, type: Time
10
+
11
+ locker locked_at_field: :locker_locked_at,
12
+ locked_until_field: :locker_locked_until
13
+
14
+ ## User Info
15
+ field :name, type: String
16
+ field :nickname, type: String
17
+ field :image, type: String
18
+
19
+ ## Database authenticatable
20
+ field :email, type: String, default: ''
21
+ field :encrypted_password, type: String, default: ''
22
+
23
+ ## Recoverable
24
+ field :reset_password_token, type: String
25
+ field :reset_password_sent_at, type: Time
26
+ field :reset_password_redirect_url, type: String
27
+ field :allow_password_change, type: Boolean, default: false
28
+
29
+ ## Rememberable
30
+ field :remember_created_at, type: Time
31
+
32
+ ## Confirmable
33
+ field :confirmation_token, type: String
34
+ field :confirmed_at, type: Time
35
+ field :confirmation_sent_at, type: Time
36
+ field :unconfirmed_email, type: String # Only if using reconfirmable
37
+
38
+ ## Required
39
+ field :provider, type: String
40
+ field :uid, type: String, default: ''
41
+
42
+ ## Tokens
43
+ field :tokens, type: Hash, default: {}
44
+
45
+ # Include default devise modules.
46
+ devise :database_authenticatable, :registerable,
47
+ :recoverable, :rememberable, :trackable,
48
+ :validatable, :confirmable
49
+ DeviseTokenAuth.send_confirmation_email = true
50
+ include DeviseTokenAuth::Concerns::User
51
+ DeviseTokenAuth.send_confirmation_email = false
52
+ end
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ class LockableUser
4
+ include Mongoid::Document
5
+ include Mongoid::Timestamps
6
+ include Mongoid::Locker
7
+
8
+ field :locker_locked_at, type: Time
9
+ field :locker_locked_until, type: Time
10
+
11
+ locker locked_at_field: :locker_locked_at,
12
+ locked_until_field: :locker_locked_until
13
+
14
+ ## User Info
15
+ field :name, type: String
16
+ field :nickname, type: String
17
+ field :image, type: String
18
+
19
+ ## Database authenticatable
20
+ field :email, type: String, default: ''
21
+ field :encrypted_password, type: String, default: ''
22
+
23
+ ## Lockable
24
+ field :failed_attempts, type: Integer, default: 0 # Only if lock strategy is :failed_attempts
25
+ field :unlock_token, type: String # Only if unlock strategy is :email or :both
26
+ field :locked_at, type: Time
27
+
28
+ ## Required
29
+ field :provider, type: String
30
+ field :uid, type: String, default: ''
31
+
32
+ ## Tokens
33
+ field :tokens, type: Hash, default: {}
34
+
35
+ # Include default devise modules.
36
+ devise :database_authenticatable, :registerable, :lockable
37
+ include DeviseTokenAuth::Concerns::User
38
+ end
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Mang
4
+ include Mongoid::Document
5
+ include Mongoid::Timestamps
6
+ include Mongoid::Locker
7
+
8
+ field :locker_locked_at, type: Time
9
+ field :locker_locked_until, type: Time
10
+
11
+ locker locked_at_field: :locker_locked_at,
12
+ locked_until_field: :locker_locked_until
13
+
14
+ ## User Info
15
+ field :name, type: String
16
+ field :nickname, type: String
17
+ field :image, type: String
18
+
19
+ ## Database authenticatable
20
+ field :email, type: String, default: ''
21
+ field :encrypted_password, type: String, default: ''
22
+
23
+ ## Recoverable
24
+ field :reset_password_token, type: String
25
+ field :reset_password_sent_at, type: Time
26
+ field :reset_password_redirect_url, type: String
27
+ field :allow_password_change, type: Boolean, default: false
28
+
29
+ ## Rememberable
30
+ field :remember_created_at, type: Time
31
+
32
+ ## Confirmable
33
+ field :confirmation_token, type: String
34
+ field :confirmed_at, type: Time
35
+ field :confirmation_sent_at, type: Time
36
+ field :unconfirmed_email, type: String # Only if using reconfirmable
37
+
38
+ ## Required
39
+ field :provider, type: String
40
+ field :uid, type: String, default: ''
41
+
42
+ ## Tokens
43
+ field :tokens, type: Hash, default: {}
44
+
45
+ include DeviseTokenAuth::Concerns::User
46
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ class OnlyEmailUser
4
+ include Mongoid::Document
5
+ include Mongoid::Timestamps
6
+ include Mongoid::Locker
7
+
8
+ field :locker_locked_at, type: Time
9
+ field :locker_locked_until, type: Time
10
+
11
+ locker locked_at_field: :locker_locked_at,
12
+ locked_until_field: :locker_locked_until
13
+
14
+ ## User Info
15
+ field :name, type: String
16
+ field :nickname, type: String
17
+ field :image, type: String
18
+
19
+ ## Database authenticatable
20
+ field :email, type: String, default: ''
21
+ field :encrypted_password, type: String, default: ''
22
+
23
+ ## Required
24
+ field :provider, type: String
25
+ field :uid, type: String, default: ''
26
+
27
+ ## Tokens
28
+ field :tokens, type: Hash, default: {}
29
+
30
+ # Include default devise modules.
31
+ devise :database_authenticatable, :registerable
32
+ include DeviseTokenAuth::Concerns::User
33
+ end
@@ -0,0 +1,50 @@
1
+ # frozen_string_literal: true
2
+
3
+ class ScopedUser
4
+ include Mongoid::Document
5
+ include Mongoid::Timestamps
6
+ include Mongoid::Locker
7
+
8
+ field :locker_locked_at, type: Time
9
+ field :locker_locked_until, type: Time
10
+
11
+ locker locked_at_field: :locker_locked_at,
12
+ locked_until_field: :locker_locked_until
13
+
14
+ ## User Info
15
+ field :name, type: String
16
+ field :nickname, type: String
17
+ field :image, type: String
18
+
19
+ ## Database authenticatable
20
+ field :email, type: String, default: ''
21
+ field :encrypted_password, type: String, default: ''
22
+
23
+ ## Recoverable
24
+ field :reset_password_token, type: String
25
+ field :reset_password_sent_at, type: Time
26
+ field :reset_password_redirect_url, type: String
27
+ field :allow_password_change, type: Boolean, default: false
28
+
29
+ ## Rememberable
30
+ field :remember_created_at, type: Time
31
+
32
+ ## Confirmable
33
+ field :confirmation_token, type: String
34
+ field :confirmed_at, type: Time
35
+ field :confirmation_sent_at, type: Time
36
+ field :unconfirmed_email, type: String # Only if using reconfirmable
37
+
38
+ ## Required
39
+ field :provider, type: String
40
+ field :uid, type: String, default: ''
41
+
42
+ ## Tokens
43
+ field :tokens, type: Hash, default: {}
44
+
45
+ # Include default devise modules.
46
+ devise :database_authenticatable, :registerable,
47
+ :recoverable, :rememberable, :trackable,
48
+ :validatable, :confirmable, :omniauthable
49
+ include DeviseTokenAuth::Concerns::User
50
+ end
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ class UnconfirmableUser
4
+ include Mongoid::Document
5
+ include Mongoid::Timestamps
6
+ include Mongoid::Locker
7
+
8
+ field :locker_locked_at, type: Time
9
+ field :locker_locked_until, type: Time
10
+
11
+ locker locked_at_field: :locker_locked_at,
12
+ locked_until_field: :locker_locked_until
13
+
14
+ ## User Info
15
+ field :name, type: String
16
+ field :nickname, type: String
17
+ field :image, type: String
18
+
19
+ ## Database authenticatable
20
+ field :email, type: String, default: ''
21
+ field :encrypted_password, type: String, default: ''
22
+
23
+ ## Recoverable
24
+ field :reset_password_token, type: String
25
+ field :reset_password_sent_at, type: Time
26
+ field :reset_password_redirect_url, type: String
27
+ field :allow_password_change, type: Boolean, default: false
28
+
29
+ ## Rememberable
30
+ field :remember_created_at, type: Time
31
+
32
+ ## Required
33
+ field :provider, type: String
34
+ field :uid, type: String, default: ''
35
+
36
+ ## Tokens
37
+ field :tokens, type: Hash, default: {}
38
+
39
+ # Include default devise modules.
40
+ devise :database_authenticatable, :registerable,
41
+ :recoverable, :rememberable, :trackable,
42
+ :validatable, :omniauthable
43
+ include DeviseTokenAuth::Concerns::User
44
+ end
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ class UnregisterableUser
4
+ include Mongoid::Document
5
+ include Mongoid::Timestamps
6
+ include Mongoid::Locker
7
+
8
+ field :locker_locked_at, type: Time
9
+ field :locker_locked_until, type: Time
10
+
11
+ locker locked_at_field: :locker_locked_at,
12
+ locked_until_field: :locker_locked_until
13
+
14
+ ## User Info
15
+ field :name, type: String
16
+ field :nickname, type: String
17
+ field :image, type: String
18
+
19
+ ## Database authenticatable
20
+ field :email, type: String, default: ''
21
+ field :encrypted_password, type: String, default: ''
22
+
23
+ ## Recoverable
24
+ field :reset_password_token, type: String
25
+ field :reset_password_sent_at, type: Time
26
+ field :reset_password_redirect_url, type: String
27
+ field :allow_password_change, type: Boolean, default: false
28
+
29
+ ## Confirmable
30
+ field :confirmation_token, type: String
31
+ field :confirmed_at, type: Time
32
+ field :confirmation_sent_at, type: Time
33
+ field :unconfirmed_email, type: String # Only if using reconfirmable
34
+
35
+ ## Required
36
+ field :provider, type: String
37
+ field :uid, type: String, default: ''
38
+
39
+ ## Tokens
40
+ field :tokens, type: Hash, default: {}
41
+
42
+ # Include default devise modules.
43
+ devise :database_authenticatable, :recoverable,
44
+ :trackable, :validatable, :confirmable,
45
+ :omniauthable
46
+ include DeviseTokenAuth::Concerns::User
47
+ end
@@ -0,0 +1,49 @@
1
+ # frozen_string_literal: true
2
+
3
+ class User
4
+ include Mongoid::Document
5
+ include Mongoid::Timestamps
6
+ include Mongoid::Locker
7
+
8
+ field :locker_locked_at, type: Time
9
+ field :locker_locked_until, type: Time
10
+
11
+ locker locked_at_field: :locker_locked_at,
12
+ locked_until_field: :locker_locked_until
13
+
14
+ ## User Info
15
+ field :name, type: String
16
+ field :nickname, type: String
17
+ field :image, type: String
18
+ field :favorite_color, type: String
19
+ field :operating_thetan, type: Integer
20
+
21
+ ## Database authenticatable
22
+ field :email, type: String, default: ''
23
+ field :encrypted_password, type: String, default: ''
24
+
25
+ ## Recoverable
26
+ field :reset_password_token, type: String
27
+ field :reset_password_sent_at, type: Time
28
+ field :reset_password_redirect_url, type: String
29
+ field :allow_password_change, type: Boolean, default: false
30
+
31
+ ## Rememberable
32
+ field :remember_created_at, type: Time
33
+
34
+ ## Confirmable
35
+ field :confirmation_token, type: String
36
+ field :confirmed_at, type: Time
37
+ field :confirmation_sent_at, type: Time
38
+ field :unconfirmed_email, type: String # Only if using reconfirmable
39
+
40
+ ## Required
41
+ field :provider, type: String
42
+ field :uid, type: String, default: ''
43
+
44
+ ## Tokens
45
+ field :tokens, type: Hash, default: {}
46
+
47
+ include DeviseTokenAuth::Concerns::User
48
+ include FavoriteColor
49
+ end