Sha256: 80918767195b70a5e90ada5019829e1153f88e2a341daf03aebea8087a36975f

Contents?: true

Size: 764 Bytes

Versions: 6

Compression:

Stored size: 764 Bytes

Contents

# frozen_string_literal: true

module DeviseJwtAuth::Concerns::UserOmniauthCallbacks
  extend ActiveSupport::Concern

  included do
    validates :email, presence: true,if: :email_provider?
    validates :email, :devise_jwt_auth_email => true, allow_nil: true, allow_blank: true, if: :email_provider?
    validates_presence_of :uid, unless: :email_provider?

    # only validate unique emails among email registration users
    validates :email, uniqueness: { case_sensitive: false, scope: :provider }, on: :create, if: :email_provider?

    # keep uid in sync with email
    before_save :sync_uid
    before_create :sync_uid
  end

  protected

  def email_provider?
    provider == 'email'
  end

  def sync_uid
    self.uid = email if email_provider?
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
devise_jwt_auth-0.1.5 app/models/devise_jwt_auth/concerns/user_omniauth_callbacks.rb
devise_jwt_auth-0.1.4 app/models/devise_jwt_auth/concerns/user_omniauth_callbacks.rb
devise_jwt_auth-0.1.3 app/models/devise_jwt_auth/concerns/user_omniauth_callbacks.rb
devise_jwt_auth-0.1.2 app/models/devise_jwt_auth/concerns/user_omniauth_callbacks.rb
devise_jwt_auth-0.1.1 app/models/devise_jwt_auth/concerns/user_omniauth_callbacks.rb
devise_jwt_auth-0.1.0 app/models/devise_jwt_auth/concerns/user_omniauth_callbacks.rb