devise_token_auth_multi_email 0.9.0
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 +7 -0
- data/LICENSE +13 -0
- data/README.md +97 -0
- data/Rakefile +42 -0
- data/app/controllers/devise_token_auth/application_controller.rb +100 -0
- data/app/controllers/devise_token_auth/concerns/resource_finder.rb +68 -0
- data/app/controllers/devise_token_auth/concerns/set_user_by_token.rb +199 -0
- data/app/controllers/devise_token_auth/confirmations_controller.rb +89 -0
- data/app/controllers/devise_token_auth/omniauth_callbacks_controller.rb +284 -0
- data/app/controllers/devise_token_auth/passwords_controller.rb +216 -0
- data/app/controllers/devise_token_auth/registrations_controller.rb +205 -0
- data/app/controllers/devise_token_auth/sessions_controller.rb +153 -0
- data/app/controllers/devise_token_auth/token_validations_controller.rb +31 -0
- data/app/controllers/devise_token_auth/unlocks_controller.rb +94 -0
- data/app/models/devise_token_auth/concerns/active_record_support.rb +18 -0
- data/app/models/devise_token_auth/concerns/confirmable_support.rb +28 -0
- data/app/models/devise_token_auth/concerns/mongoid_support.rb +19 -0
- data/app/models/devise_token_auth/concerns/tokens_serialization.rb +31 -0
- data/app/models/devise_token_auth/concerns/user.rb +282 -0
- data/app/models/devise_token_auth/concerns/user_omniauth_callbacks.rb +39 -0
- data/app/validators/devise_token_auth_email_validator.rb +31 -0
- data/app/views/devise/mailer/confirmation_instructions.html.erb +5 -0
- data/app/views/devise/mailer/reset_password_instructions.html.erb +8 -0
- data/app/views/devise/mailer/unlock_instructions.html.erb +7 -0
- data/app/views/devise_token_auth/omniauth_external_window.html.erb +38 -0
- data/config/locales/da-DK.yml +52 -0
- data/config/locales/de.yml +51 -0
- data/config/locales/en.yml +60 -0
- data/config/locales/es.yml +51 -0
- data/config/locales/fa.yml +60 -0
- data/config/locales/fr.yml +51 -0
- data/config/locales/he.yml +52 -0
- data/config/locales/it.yml +48 -0
- data/config/locales/ja.yml +60 -0
- data/config/locales/ko.yml +51 -0
- data/config/locales/nl.yml +32 -0
- data/config/locales/pl.yml +51 -0
- data/config/locales/pt-BR.yml +48 -0
- data/config/locales/pt.yml +51 -0
- data/config/locales/ro.yml +48 -0
- data/config/locales/ru.yml +52 -0
- data/config/locales/sq.yml +48 -0
- data/config/locales/sv.yml +52 -0
- data/config/locales/uk.yml +61 -0
- data/config/locales/vi.yml +52 -0
- data/config/locales/zh-CN.yml +48 -0
- data/config/locales/zh-HK.yml +50 -0
- data/config/locales/zh-TW.yml +50 -0
- data/lib/devise_token_auth/blacklist.rb +6 -0
- data/lib/devise_token_auth/controllers/helpers.rb +157 -0
- data/lib/devise_token_auth/controllers/url_helpers.rb +10 -0
- data/lib/devise_token_auth/engine.rb +105 -0
- data/lib/devise_token_auth/errors.rb +8 -0
- data/lib/devise_token_auth/rails/routes.rb +122 -0
- data/lib/devise_token_auth/token_factory.rb +126 -0
- data/lib/devise_token_auth/url.rb +44 -0
- data/lib/devise_token_auth/version.rb +5 -0
- data/lib/devise_token_auth.rb +14 -0
- data/lib/generators/devise_token_auth/USAGE +31 -0
- data/lib/generators/devise_token_auth/install_generator.rb +91 -0
- data/lib/generators/devise_token_auth/install_generator_helpers.rb +98 -0
- data/lib/generators/devise_token_auth/install_mongoid_generator.rb +46 -0
- data/lib/generators/devise_token_auth/install_views_generator.rb +18 -0
- data/lib/generators/devise_token_auth/templates/devise_token_auth.rb +66 -0
- data/lib/generators/devise_token_auth/templates/devise_token_auth_create_users.rb.erb +49 -0
- data/lib/generators/devise_token_auth/templates/user.rb.erb +9 -0
- data/lib/generators/devise_token_auth/templates/user_mongoid.rb.erb +56 -0
- data/lib/tasks/devise_token_auth_tasks.rake +6 -0
- data/test/controllers/custom/custom_confirmations_controller_test.rb +25 -0
- data/test/controllers/custom/custom_omniauth_callbacks_controller_test.rb +33 -0
- data/test/controllers/custom/custom_passwords_controller_test.rb +79 -0
- data/test/controllers/custom/custom_registrations_controller_test.rb +63 -0
- data/test/controllers/custom/custom_sessions_controller_test.rb +39 -0
- data/test/controllers/custom/custom_token_validations_controller_test.rb +42 -0
- data/test/controllers/demo_group_controller_test.rb +151 -0
- data/test/controllers/demo_mang_controller_test.rb +313 -0
- data/test/controllers/demo_user_controller_test.rb +658 -0
- data/test/controllers/devise_token_auth/confirmations_controller_test.rb +275 -0
- data/test/controllers/devise_token_auth/omniauth_callbacks_controller_test.rb +438 -0
- data/test/controllers/devise_token_auth/passwords_controller_test.rb +893 -0
- data/test/controllers/devise_token_auth/registrations_controller_test.rb +920 -0
- data/test/controllers/devise_token_auth/sessions_controller_test.rb +605 -0
- data/test/controllers/devise_token_auth/token_validations_controller_test.rb +142 -0
- data/test/controllers/devise_token_auth/unlocks_controller_test.rb +235 -0
- data/test/controllers/overrides/confirmations_controller_test.rb +47 -0
- data/test/controllers/overrides/omniauth_callbacks_controller_test.rb +53 -0
- data/test/controllers/overrides/passwords_controller_test.rb +64 -0
- data/test/controllers/overrides/registrations_controller_test.rb +46 -0
- data/test/controllers/overrides/sessions_controller_test.rb +35 -0
- data/test/controllers/overrides/token_validations_controller_test.rb +43 -0
- data/test/dummy/README.rdoc +28 -0
- data/test/dummy/app/active_record/confirmable_user.rb +11 -0
- data/test/dummy/app/active_record/lockable_user.rb +7 -0
- data/test/dummy/app/active_record/mang.rb +5 -0
- data/test/dummy/app/active_record/only_email_user.rb +7 -0
- data/test/dummy/app/active_record/scoped_user.rb +9 -0
- data/test/dummy/app/active_record/unconfirmable_user.rb +9 -0
- data/test/dummy/app/active_record/unregisterable_user.rb +9 -0
- data/test/dummy/app/active_record/user.rb +6 -0
- data/test/dummy/app/controllers/application_controller.rb +14 -0
- data/test/dummy/app/controllers/auth_origin_controller.rb +7 -0
- data/test/dummy/app/controllers/custom/confirmations_controller.rb +13 -0
- data/test/dummy/app/controllers/custom/omniauth_callbacks_controller.rb +13 -0
- data/test/dummy/app/controllers/custom/passwords_controller.rb +39 -0
- data/test/dummy/app/controllers/custom/registrations_controller.rb +39 -0
- data/test/dummy/app/controllers/custom/sessions_controller.rb +29 -0
- data/test/dummy/app/controllers/custom/token_validations_controller.rb +19 -0
- data/test/dummy/app/controllers/demo_group_controller.rb +15 -0
- data/test/dummy/app/controllers/demo_mang_controller.rb +14 -0
- data/test/dummy/app/controllers/demo_user_controller.rb +27 -0
- data/test/dummy/app/controllers/overrides/confirmations_controller.rb +29 -0
- data/test/dummy/app/controllers/overrides/omniauth_callbacks_controller.rb +16 -0
- data/test/dummy/app/controllers/overrides/passwords_controller.rb +36 -0
- data/test/dummy/app/controllers/overrides/registrations_controller.rb +29 -0
- data/test/dummy/app/controllers/overrides/sessions_controller.rb +36 -0
- data/test/dummy/app/controllers/overrides/token_validations_controller.rb +23 -0
- data/test/dummy/app/helpers/application_helper.rb +1058 -0
- data/test/dummy/app/models/concerns/favorite_color.rb +19 -0
- data/test/dummy/app/mongoid/confirmable_user.rb +52 -0
- data/test/dummy/app/mongoid/lockable_user.rb +38 -0
- data/test/dummy/app/mongoid/mang.rb +46 -0
- data/test/dummy/app/mongoid/only_email_user.rb +33 -0
- data/test/dummy/app/mongoid/scoped_user.rb +50 -0
- data/test/dummy/app/mongoid/unconfirmable_user.rb +44 -0
- data/test/dummy/app/mongoid/unregisterable_user.rb +47 -0
- data/test/dummy/app/mongoid/user.rb +49 -0
- data/test/dummy/app/views/layouts/application.html.erb +12 -0
- data/test/dummy/config/application.rb +50 -0
- data/test/dummy/config/application.yml.bk +0 -0
- data/test/dummy/config/boot.rb +11 -0
- data/test/dummy/config/environment.rb +7 -0
- data/test/dummy/config/environments/development.rb +36 -0
- data/test/dummy/config/environments/production.rb +68 -0
- data/test/dummy/config/environments/test.rb +58 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +9 -0
- data/test/dummy/config/initializers/cookies_serializer.rb +5 -0
- data/test/dummy/config/initializers/devise.rb +290 -0
- data/test/dummy/config/initializers/devise_token_auth.rb +55 -0
- data/test/dummy/config/initializers/figaro.rb +3 -0
- data/test/dummy/config/initializers/filter_parameter_logging.rb +6 -0
- data/test/dummy/config/initializers/inflections.rb +18 -0
- data/test/dummy/config/initializers/mime_types.rb +6 -0
- data/test/dummy/config/initializers/omniauth.rb +11 -0
- data/test/dummy/config/initializers/session_store.rb +5 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +16 -0
- data/test/dummy/config/routes.rb +57 -0
- data/test/dummy/config/spring.rb +3 -0
- data/test/dummy/config.ru +18 -0
- data/test/dummy/db/migrate/20140715061447_devise_token_auth_create_users.rb +58 -0
- data/test/dummy/db/migrate/20140715061805_devise_token_auth_create_mangs.rb +57 -0
- data/test/dummy/db/migrate/20140829044006_add_operating_thetan_to_user.rb +8 -0
- data/test/dummy/db/migrate/20140916224624_add_favorite_color_to_mangs.rb +7 -0
- data/test/dummy/db/migrate/20141222035835_devise_token_auth_create_only_email_users.rb +55 -0
- data/test/dummy/db/migrate/20141222053502_devise_token_auth_create_unregisterable_users.rb +56 -0
- data/test/dummy/db/migrate/20150708104536_devise_token_auth_create_unconfirmable_users.rb +56 -0
- data/test/dummy/db/migrate/20160103235141_devise_token_auth_create_scoped_users.rb +56 -0
- data/test/dummy/db/migrate/20160629184441_devise_token_auth_create_lockable_users.rb +56 -0
- data/test/dummy/db/migrate/20190924101113_devise_token_auth_create_confirmable_users.rb +49 -0
- data/test/dummy/db/schema.rb +198 -0
- data/test/dummy/lib/migration_database_helper.rb +43 -0
- data/test/dummy/tmp/generators/app/models/mang.rb +9 -0
- data/test/dummy/tmp/generators/app/models/user.rb +9 -0
- data/test/dummy/tmp/generators/config/initializers/devise_token_auth.rb +60 -0
- data/test/dummy/tmp/generators/config/routes.rb +9 -0
- data/test/dummy/tmp/generators/db/migrate/20210305040222_devise_token_auth_create_mangs.rb +49 -0
- data/test/dummy/tmp/generators/db/migrate/20210305040222_devise_token_auth_create_users.rb +49 -0
- data/test/factories/users.rb +41 -0
- data/test/lib/devise_token_auth/blacklist_test.rb +19 -0
- data/test/lib/devise_token_auth/rails/custom_routes_test.rb +29 -0
- data/test/lib/devise_token_auth/rails/routes_test.rb +87 -0
- data/test/lib/devise_token_auth/token_factory_test.rb +191 -0
- data/test/lib/devise_token_auth/url_test.rb +26 -0
- data/test/lib/generators/devise_token_auth/install_generator_test.rb +217 -0
- data/test/lib/generators/devise_token_auth/install_generator_with_namespace_test.rb +222 -0
- data/test/lib/generators/devise_token_auth/install_views_generator_test.rb +25 -0
- data/test/models/concerns/mongoid_support_test.rb +31 -0
- data/test/models/concerns/tokens_serialization_test.rb +104 -0
- data/test/models/confirmable_user_test.rb +35 -0
- data/test/models/only_email_user_test.rb +29 -0
- data/test/models/user_test.rb +224 -0
- data/test/support/controllers/routes.rb +43 -0
- data/test/test_helper.rb +134 -0
- metadata +502 -0
|
@@ -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
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
class ScopedUser < ActiveRecord::Base
|
|
4
|
+
# Include default devise modules.
|
|
5
|
+
devise :database_authenticatable, :registerable,
|
|
6
|
+
:recoverable, :rememberable,
|
|
7
|
+
:validatable, :confirmable, :omniauthable
|
|
8
|
+
include DeviseTokenAuth::Concerns::User
|
|
9
|
+
end
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
class UnconfirmableUser < ActiveRecord::Base
|
|
4
|
+
# Include default devise modules.
|
|
5
|
+
devise :database_authenticatable, :registerable,
|
|
6
|
+
:recoverable, :rememberable,
|
|
7
|
+
:validatable, :omniauthable
|
|
8
|
+
include DeviseTokenAuth::Concerns::User
|
|
9
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
class ApplicationController < ActionController::Base
|
|
4
|
+
include DeviseTokenAuth::Concerns::SetUserByToken
|
|
5
|
+
|
|
6
|
+
before_action :configure_permitted_parameters, if: :devise_controller?
|
|
7
|
+
|
|
8
|
+
protected
|
|
9
|
+
|
|
10
|
+
def configure_permitted_parameters
|
|
11
|
+
devise_parameter_sanitizer.permit(:sign_up, keys: [:operating_thetan, :favorite_color])
|
|
12
|
+
devise_parameter_sanitizer.permit(:account_update, keys: [:operating_thetan, :favorite_color, :current_password])
|
|
13
|
+
end
|
|
14
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
class Custom::ConfirmationsController < DeviseTokenAuth::ConfirmationsController
|
|
4
|
+
def show
|
|
5
|
+
super do |resource|
|
|
6
|
+
@show_block_called = true unless resource.nil?
|
|
7
|
+
end
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def show_block_called?
|
|
11
|
+
@show_block_called == true
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
class Custom::OmniauthCallbacksController < DeviseTokenAuth::OmniauthCallbacksController
|
|
4
|
+
def omniauth_success
|
|
5
|
+
super do |resource|
|
|
6
|
+
@omniauth_success_block_called = true unless resource.nil?
|
|
7
|
+
end
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def omniauth_success_block_called?
|
|
11
|
+
@omniauth_success_block_called == true
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
class Custom::PasswordsController < DeviseTokenAuth::PasswordsController
|
|
4
|
+
def create
|
|
5
|
+
super do |resource|
|
|
6
|
+
@create_block_called = true unless resource.nil?
|
|
7
|
+
end
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def edit
|
|
11
|
+
super do |resource|
|
|
12
|
+
@edit_block_called = true unless resource.nil?
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def update
|
|
17
|
+
super do |resource|
|
|
18
|
+
@update_block_called = true unless resource.nil?
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def create_block_called?
|
|
23
|
+
@create_block_called == true
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def edit_block_called?
|
|
27
|
+
@edit_block_called == true
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def update_block_called?
|
|
31
|
+
@update_block_called == true
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
protected
|
|
35
|
+
|
|
36
|
+
def render_update_success
|
|
37
|
+
render json: { custom: 'foo' }
|
|
38
|
+
end
|
|
39
|
+
end
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
class Custom::RegistrationsController < DeviseTokenAuth::RegistrationsController
|
|
4
|
+
def create
|
|
5
|
+
super do |resource|
|
|
6
|
+
@create_block_called = true
|
|
7
|
+
end
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def update
|
|
11
|
+
super do |resource|
|
|
12
|
+
@update_block_called = true unless resource.nil?
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def destroy
|
|
17
|
+
super do |resource|
|
|
18
|
+
@destroy_block_called = true unless resource.nil?
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def create_block_called?
|
|
23
|
+
@create_block_called == true
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def update_block_called?
|
|
27
|
+
@update_block_called == true
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def destroy_block_called?
|
|
31
|
+
@destroy_block_called == true
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
protected
|
|
35
|
+
|
|
36
|
+
def render_create_success
|
|
37
|
+
render json: { custom: 'foo' }
|
|
38
|
+
end
|
|
39
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
class Custom::SessionsController < DeviseTokenAuth::SessionsController
|
|
4
|
+
def create
|
|
5
|
+
super do |resource|
|
|
6
|
+
@create_block_called = true unless resource.nil?
|
|
7
|
+
end
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def destroy
|
|
11
|
+
super do |resource|
|
|
12
|
+
@destroy_block_called = true unless resource.nil?
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def create_block_called?
|
|
17
|
+
@create_block_called == true
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def destroy_block_called?
|
|
21
|
+
@destroy_block_called == true
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
protected
|
|
25
|
+
|
|
26
|
+
def render_create_success
|
|
27
|
+
render json: { custom: 'foo' }
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
class Custom::TokenValidationsController < DeviseTokenAuth::TokenValidationsController
|
|
4
|
+
def validate_token
|
|
5
|
+
super do |resource|
|
|
6
|
+
@validate_token_block_called = true unless resource.nil?
|
|
7
|
+
end
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def validate_token_block_called?
|
|
11
|
+
@validate_token_block_called == true
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
protected
|
|
15
|
+
|
|
16
|
+
def render_validate_token_success
|
|
17
|
+
render json: { custom: 'foo' }
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
class DemoGroupController < ApplicationController
|
|
4
|
+
devise_token_auth_group :member, contains: [:user, :mang]
|
|
5
|
+
before_action :authenticate_member!
|
|
6
|
+
|
|
7
|
+
def members_only
|
|
8
|
+
render json: {
|
|
9
|
+
data: {
|
|
10
|
+
message: "Welcome #{current_member.name}",
|
|
11
|
+
user: current_member
|
|
12
|
+
}
|
|
13
|
+
}, status: 200
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
class DemoMangController < ApplicationController
|
|
4
|
+
before_action :authenticate_mang!
|
|
5
|
+
|
|
6
|
+
def members_only
|
|
7
|
+
render json: {
|
|
8
|
+
data: {
|
|
9
|
+
message: "Welcome #{current_mang.name}",
|
|
10
|
+
user: current_mang
|
|
11
|
+
}
|
|
12
|
+
}, status: 200
|
|
13
|
+
end
|
|
14
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
class DemoUserController < ApplicationController
|
|
4
|
+
before_action :authenticate_user!
|
|
5
|
+
|
|
6
|
+
def members_only
|
|
7
|
+
render json: {
|
|
8
|
+
data: {
|
|
9
|
+
message: "Welcome #{current_user.name}",
|
|
10
|
+
user: current_user
|
|
11
|
+
}
|
|
12
|
+
}, status: 200
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def members_only_remove_token
|
|
16
|
+
u = User.find(current_user.id)
|
|
17
|
+
u.tokens = {}
|
|
18
|
+
u.save!
|
|
19
|
+
|
|
20
|
+
render json: {
|
|
21
|
+
data: {
|
|
22
|
+
message: "Welcome #{current_user.name}",
|
|
23
|
+
user: current_user
|
|
24
|
+
}
|
|
25
|
+
}, status: 200
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Overrides
|
|
4
|
+
class ConfirmationsController < DeviseTokenAuth::ConfirmationsController
|
|
5
|
+
def show
|
|
6
|
+
@resource = resource_class.confirm_by_token(params[:confirmation_token])
|
|
7
|
+
|
|
8
|
+
if @resource && @resource.id
|
|
9
|
+
token = @resource.create_token
|
|
10
|
+
@resource.save!
|
|
11
|
+
|
|
12
|
+
redirect_header_options = {
|
|
13
|
+
account_confirmation_success: true,
|
|
14
|
+
config: params[:config],
|
|
15
|
+
override_proof: '(^^,)'
|
|
16
|
+
}
|
|
17
|
+
redirect_headers = build_redirect_headers(token.token,
|
|
18
|
+
token.client,
|
|
19
|
+
redirect_header_options)
|
|
20
|
+
|
|
21
|
+
redirect_to(@resource.build_auth_url(params[:redirect_url],
|
|
22
|
+
redirect_headers),
|
|
23
|
+
redirect_options)
|
|
24
|
+
else
|
|
25
|
+
raise ActionController::RoutingError, 'Not Found'
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Overrides
|
|
4
|
+
class OmniauthCallbacksController < DeviseTokenAuth::OmniauthCallbacksController
|
|
5
|
+
DEFAULT_NICKNAME = 'stimpy'.freeze
|
|
6
|
+
|
|
7
|
+
def assign_provider_attrs(user, auth_hash)
|
|
8
|
+
user.assign_attributes(
|
|
9
|
+
nickname: DEFAULT_NICKNAME,
|
|
10
|
+
name: auth_hash['info']['name'],
|
|
11
|
+
image: auth_hash['info']['image'],
|
|
12
|
+
email: auth_hash['info']['email']
|
|
13
|
+
)
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Overrides
|
|
4
|
+
class PasswordsController < DeviseTokenAuth::PasswordsController
|
|
5
|
+
OVERRIDE_PROOF = '(^^,)'.freeze
|
|
6
|
+
|
|
7
|
+
# this is where users arrive after visiting the email confirmation link
|
|
8
|
+
def edit
|
|
9
|
+
@resource = resource_class.reset_password_by_token(
|
|
10
|
+
reset_password_token: resource_params[:reset_password_token]
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
if @resource && @resource.id
|
|
14
|
+
token = @resource.create_token
|
|
15
|
+
|
|
16
|
+
# ensure that user is confirmed
|
|
17
|
+
@resource.skip_confirmation! unless @resource.confirmed_at
|
|
18
|
+
|
|
19
|
+
@resource.save!
|
|
20
|
+
|
|
21
|
+
redirect_header_options = {
|
|
22
|
+
override_proof: OVERRIDE_PROOF,
|
|
23
|
+
reset_password: true
|
|
24
|
+
}
|
|
25
|
+
redirect_headers = build_redirect_headers(token.token,
|
|
26
|
+
token.client,
|
|
27
|
+
redirect_header_options)
|
|
28
|
+
redirect_to(@resource.build_auth_url(params[:redirect_url],
|
|
29
|
+
redirect_headers),
|
|
30
|
+
redirect_options)
|
|
31
|
+
else
|
|
32
|
+
raise ActionController::RoutingError, 'Not Found'
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Overrides
|
|
4
|
+
class RegistrationsController < DeviseTokenAuth::RegistrationsController
|
|
5
|
+
OVERRIDE_PROOF = '(^^,)'.freeze
|
|
6
|
+
|
|
7
|
+
def update
|
|
8
|
+
if @resource
|
|
9
|
+
if @resource.update(account_update_params)
|
|
10
|
+
render json: {
|
|
11
|
+
status: 'success',
|
|
12
|
+
data: @resource.as_json,
|
|
13
|
+
override_proof: OVERRIDE_PROOF
|
|
14
|
+
}
|
|
15
|
+
else
|
|
16
|
+
render json: {
|
|
17
|
+
status: 'error',
|
|
18
|
+
errors: @resource.errors
|
|
19
|
+
}, status: 422
|
|
20
|
+
end
|
|
21
|
+
else
|
|
22
|
+
render json: {
|
|
23
|
+
status: 'error',
|
|
24
|
+
errors: ['User not found.']
|
|
25
|
+
}, status: 404
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Overrides
|
|
4
|
+
class SessionsController < DeviseTokenAuth::SessionsController
|
|
5
|
+
OVERRIDE_PROOF = '(^^,)'.freeze
|
|
6
|
+
|
|
7
|
+
def create
|
|
8
|
+
@resource = resource_class.dta_find_by(email: resource_params[:email])
|
|
9
|
+
|
|
10
|
+
if @resource && valid_params?(:email, resource_params[:email]) && @resource.valid_password?(resource_params[:password]) && @resource.confirmed?
|
|
11
|
+
@token = @resource.create_token
|
|
12
|
+
@resource.save
|
|
13
|
+
|
|
14
|
+
render json: {
|
|
15
|
+
data: @resource.as_json(except: %i[tokens created_at updated_at]),
|
|
16
|
+
override_proof: OVERRIDE_PROOF
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
elsif @resource && (not @resource.confirmed?)
|
|
20
|
+
render json: {
|
|
21
|
+
success: false,
|
|
22
|
+
errors: [
|
|
23
|
+
"A confirmation email was sent to your account at #{@resource.email}. "\
|
|
24
|
+
'You must follow the instructions in the email before your account '\
|
|
25
|
+
'can be activated'
|
|
26
|
+
]
|
|
27
|
+
}, status: 401
|
|
28
|
+
|
|
29
|
+
else
|
|
30
|
+
render json: {
|
|
31
|
+
errors: ['Invalid login credentials. Please try again.']
|
|
32
|
+
}, status: 401
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Overrides
|
|
4
|
+
class TokenValidationsController < DeviseTokenAuth::TokenValidationsController
|
|
5
|
+
OVERRIDE_PROOF = '(^^,)'.freeze
|
|
6
|
+
|
|
7
|
+
def validate_token
|
|
8
|
+
# @resource will have been set by set_user_by_token concern
|
|
9
|
+
if @resource
|
|
10
|
+
render json: {
|
|
11
|
+
success: true,
|
|
12
|
+
data: @resource.as_json(except: %i[tokens created_at updated_at]),
|
|
13
|
+
override_proof: OVERRIDE_PROOF
|
|
14
|
+
}
|
|
15
|
+
else
|
|
16
|
+
render json: {
|
|
17
|
+
success: false,
|
|
18
|
+
errors: ['Invalid login credentials']
|
|
19
|
+
}, status: 401
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|