diff --git a/app/controllers/graphql_devise/concerns/additional_controller_methods.rb b/app/controllers/graphql_devise/concerns/additional_controller_methods.rb index 255d721d..3eff8960 100644 --- a/app/controllers/graphql_devise/concerns/additional_controller_methods.rb +++ b/app/controllers/graphql_devise/concerns/additional_controller_methods.rb @@ -46,7 +46,7 @@ def graphql_context(resource_name) Use `gql_devise_context(model)` instead. EXAMPLE - include GraphqlDevise::Concerns::SetUserByToken + include GraphqlDevise::SetUserByToken DummySchema.execute(params[:query], context: gql_devise_context(User)) DummySchema.execute(params[:query], context: gql_devise_context(User, Admin)) diff --git a/app/controllers/graphql_devise/concerns/set_user_by_token.rb b/app/controllers/graphql_devise/concerns/set_user_by_token.rb index 31267959..e4f396ed 100644 --- a/app/controllers/graphql_devise/concerns/set_user_by_token.rb +++ b/app/controllers/graphql_devise/concerns/set_user_by_token.rb @@ -8,6 +8,13 @@ module SetUserByToken included do include DeviseTokenAuth::Concerns::SetUserByToken include GraphqlDevise::Concerns::AdditionalControllerMethods + + ActiveSupport::Deprecation.warn(<<-DEPRECATION.strip_heredoc, caller) + Including GraphqlDevise::Concerns::SetUserByToken is deprecated and will be removed in a future version of + this gem. Please use GraphqlDevise::SetUserByToken instead. + EXAMPLE + include GraphqlDevise::SetUserByToken + DEPRECATION end end end diff --git a/app/controllers/graphql_devise/graphql_controller.rb b/app/controllers/graphql_devise/graphql_controller.rb index d4133e76..a4736c67 100644 --- a/app/controllers/graphql_devise/graphql_controller.rb +++ b/app/controllers/graphql_devise/graphql_controller.rb @@ -4,7 +4,7 @@ module GraphqlDevise class GraphqlController < ApplicationController - include GraphqlDevise::Concerns::SetUserByToken + include GraphqlDevise::SetUserByToken def auth result = if params[:_json] diff --git a/app/models/graphql_devise/concerns/model.rb b/app/models/graphql_devise/concerns/model.rb index 28b70e2a..3cd7e593 100644 --- a/app/models/graphql_devise/concerns/model.rb +++ b/app/models/graphql_devise/concerns/model.rb @@ -12,6 +12,13 @@ module Model include GraphqlDevise::Concerns::AdditionalModelMethods GraphqlDevise.configure_warden_serializer_for_model(self) + + ActiveSupport::Deprecation.warn(<<-DEPRECATION.strip_heredoc, caller) + Including GraphqlDevise::Concerns::Model is deprecated and will be removed in a future version of + this gem. Please use GraphqlDevise::Authenticatable instead. + EXAMPLE + include GraphqlDevise::Authenticatable + DEPRECATION end end end diff --git a/lib/generators/graphql_devise/install_generator.rb b/lib/generators/graphql_devise/install_generator.rb index 1261b506..4df4d14f 100644 --- a/lib/generators/graphql_devise/install_generator.rb +++ b/lib/generators/graphql_devise/install_generator.rb @@ -18,13 +18,13 @@ def execute_dta_installer if File.exist?(File.expand_path("app/models/#{user_class.underscore}.rb", destination_root)) gsub_file( "app/models/#{user_class.underscore}.rb", - 'GraphqlDevise::Concerns::Model', + 'GraphqlDevise::Authenticatable', 'DeviseTokenAuth::Concerns::User' ) end gsub_file( 'app/controllers/application_controller.rb', - 'GraphqlDevise::Concerns::SetUserByToken', + 'GraphqlDevise::SetUserByToken', 'DeviseTokenAuth::Concerns::SetUserByToken' ) @@ -54,7 +54,7 @@ def replace_model_concern gsub_file( "app/models/#{user_class.underscore}.rb", /^\s+include DeviseTokenAuth::Concerns::User/, - ' include GraphqlDevise::Concerns::Model' + ' include GraphqlDevise::Authenticatable' ) end @@ -62,7 +62,7 @@ def replace_controller_concern gsub_file( 'app/controllers/application_controller.rb', /^\s+include DeviseTokenAuth::Concerns::SetUserByToken/, - ' include GraphqlDevise::Concerns::SetUserByToken' + ' include GraphqlDevise::SetUserByToken' ) end diff --git a/lib/graphql_devise.rb b/lib/graphql_devise.rb index a9438db1..27ac1866 100644 --- a/lib/graphql_devise.rb +++ b/lib/graphql_devise.rb @@ -60,6 +60,10 @@ def self.configure_warden_serializer_for_model(model) require 'graphql_devise/errors/authentication_error' require 'graphql_devise/errors/detailed_user_error' +# TODO: Remove when merged into master +require 'graphql_devise/concerns/authenticatable' +require 'graphql_devise/concerns/set_user_by_token.rb' + require 'graphql_devise/concerns/controller_methods' require 'graphql_devise/schema' require 'graphql_devise/types/authenticatable_type' diff --git a/lib/graphql_devise/concerns/authenticatable.rb b/lib/graphql_devise/concerns/authenticatable.rb new file mode 100644 index 00000000..20b9063e --- /dev/null +++ b/lib/graphql_devise/concerns/authenticatable.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +module GraphqlDevise + module Authenticatable + extend ActiveSupport::Concern + + included do + include DeviseTokenAuth::Concerns::User + include GraphqlDevise::Concerns::AdditionalModelMethods + + ::GraphqlDevise.configure_warden_serializer_for_model(self) + end + end +end diff --git a/lib/graphql_devise/concerns/set_user_by_token.rb b/lib/graphql_devise/concerns/set_user_by_token.rb new file mode 100644 index 00000000..d86f68be --- /dev/null +++ b/lib/graphql_devise/concerns/set_user_by_token.rb @@ -0,0 +1,12 @@ +# frozen_string_literal: true + +module GraphqlDevise + module SetUserByToken + extend ActiveSupport::Concern + + included do + include DeviseTokenAuth::Concerns::SetUserByToken + include GraphqlDevise::Concerns::AdditionalControllerMethods + end + end +end diff --git a/lib/graphql_devise/schema_plugin.rb b/lib/graphql_devise/schema_plugin.rb index 1ca7ffd7..8db7268e 100644 --- a/lib/graphql_devise/schema_plugin.rb +++ b/lib/graphql_devise/schema_plugin.rb @@ -37,7 +37,7 @@ def trace(event, trace_data) Please use `gql_devise_context` in you controller instead. EXAMPLE - include GraphqlDevise::Concerns::SetUserByToken + include GraphqlDevise::SetUserByToken DummySchema.execute(params[:query], context: gql_devise_context(User)) DummySchema.execute(params[:query], context: gql_devise_context(User, Admin)) diff --git a/spec/dummy/app/controllers/api/v1/graphql_controller.rb b/spec/dummy/app/controllers/api/v1/graphql_controller.rb index f1cac611..0fbd0169 100644 --- a/spec/dummy/app/controllers/api/v1/graphql_controller.rb +++ b/spec/dummy/app/controllers/api/v1/graphql_controller.rb @@ -3,7 +3,7 @@ module Api module V1 class GraphqlController < ApplicationController - include GraphqlDevise::Concerns::SetUserByToken + include GraphqlDevise::SetUserByToken def graphql result = DummySchema.execute(params[:query], **execute_params(params)) diff --git a/spec/dummy/app/models/admin.rb b/spec/dummy/app/models/admin.rb index f8c67553..53e15354 100644 --- a/spec/dummy/app/models/admin.rb +++ b/spec/dummy/app/models/admin.rb @@ -7,5 +7,5 @@ class Admin < ApplicationRecord :validatable, :confirmable - include GraphqlDevise::Concerns::Model + include GraphqlDevise::Authenticatable end diff --git a/spec/dummy/app/models/guest.rb b/spec/dummy/app/models/guest.rb index 32006c74..0cd197cb 100644 --- a/spec/dummy/app/models/guest.rb +++ b/spec/dummy/app/models/guest.rb @@ -6,5 +6,5 @@ class Guest < ApplicationRecord :recoverable, :validatable - include GraphqlDevise::Concerns::Model + include GraphqlDevise::Authenticatable end diff --git a/spec/dummy/app/models/schema_user.rb b/spec/dummy/app/models/schema_user.rb index ee079a67..f494a788 100644 --- a/spec/dummy/app/models/schema_user.rb +++ b/spec/dummy/app/models/schema_user.rb @@ -7,7 +7,7 @@ class SchemaUser < ApplicationRecord :validatable, :confirmable - include GraphqlDevise::Concerns::Model + include GraphqlDevise::Authenticatable validates :name, presence: true end diff --git a/spec/dummy/app/models/user.rb b/spec/dummy/app/models/user.rb index 93b3b403..881cacf4 100644 --- a/spec/dummy/app/models/user.rb +++ b/spec/dummy/app/models/user.rb @@ -10,7 +10,7 @@ class User < ApplicationRecord :validatable, :confirmable - include GraphqlDevise::Concerns::Model + include GraphqlDevise::Authenticatable validates :name, presence: true diff --git a/spec/dummy/app/models/users/customer.rb b/spec/dummy/app/models/users/customer.rb index 846c39ed..187fde2e 100644 --- a/spec/dummy/app/models/users/customer.rb +++ b/spec/dummy/app/models/users/customer.rb @@ -4,7 +4,7 @@ module Users class Customer < ApplicationRecord devise :database_authenticatable, :validatable - include GraphqlDevise::Concerns::Model + include GraphqlDevise::Authenticatable validates :name, presence: true end diff --git a/spec/generators/graphql_devise/install_generator_spec.rb b/spec/generators/graphql_devise/install_generator_spec.rb index c151443d..f0358538 100644 --- a/spec/generators/graphql_devise/install_generator_spec.rb +++ b/spec/generators/graphql_devise/install_generator_spec.rb @@ -29,9 +29,9 @@ assert_migration 'db/migrate/devise_token_auth_create_admins.rb' - assert_file 'app/models/admin.rb', /^\s{2}devise :.+include GraphqlDevise::Concerns::Model/m + assert_file 'app/models/admin.rb', /^\s{2}devise :.+include GraphqlDevise::Authenticatable/m - assert_file 'app/controllers/application_controller.rb', /^\s{2}include GraphqlDevise::Concerns::SetUserByToken/ + assert_file 'app/controllers/application_controller.rb', /^\s{2}include GraphqlDevise::SetUserByToken/ assert_file 'app/graphql/gqld_dummy_schema.rb', /\s+#{Regexp.escape("GraphqlDevise::ResourceLoader.new(Admin)")}/ end @@ -50,9 +50,9 @@ assert_migration 'db/migrate/devise_token_auth_create_users.rb' - assert_file 'app/models/user.rb', /^\s{2}devise :.+include GraphqlDevise::Concerns::Model/m + assert_file 'app/models/user.rb', /^\s{2}devise :.+include GraphqlDevise::Authenticatable/m - assert_file 'app/controllers/application_controller.rb', /^\s{2}include GraphqlDevise::Concerns::SetUserByToken/ + assert_file 'app/controllers/application_controller.rb', /^\s{2}include GraphqlDevise::SetUserByToken/ end end @@ -69,9 +69,9 @@ assert_migration 'db/migrate/devise_token_auth_create_admins.rb' - assert_file 'app/models/admin.rb', /^\s{2}devise :.+include GraphqlDevise::Concerns::Model/m + assert_file 'app/models/admin.rb', /^\s{2}devise :.+include GraphqlDevise::Authenticatable/m - assert_file 'app/controllers/application_controller.rb', /^\s{2}include GraphqlDevise::Concerns::SetUserByToken/ + assert_file 'app/controllers/application_controller.rb', /^\s{2}include GraphqlDevise::SetUserByToken/ end end