Sha256: a2db007e78d39df5080ba6c1b8fa889aebeb6220824ef0e3ab25d99b98164e4d

Contents?: true

Size: 774 Bytes

Versions: 1

Compression:

Stored size: 774 Bytes

Contents

require 'devise/strategies/authenticatable'

module Devise
  module Strategies
    class SubdomainLogin < Authenticatable

      def subdomain
        request.subdomain
      end

      def valid?
        subdomain.present? && params["user"]
      end

      def authenticate!
        return fail!('Invalid email or password.') unless account = Mtdevise::Account.find_by(subdomain: subdomain)
        return fail!('Invalid email or password.') unless user = account.users.find_by(email: params["user"]["email"])
        return fail!('Invalid email or password.') unless user.valid_password?(params["user"]["password"])
        success! user
      end

    end
  end
end

Warden::Strategies.add(:subdomain_login, Devise::Strategies::SubdomainLogin)

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
mtdevise-5.0.1 config/initializers/devise/strategies/subdomain.rb