mirror of
https://github.com/internetee/registry.git
synced 2025-06-10 14:44:47 +02:00
49 lines
1.2 KiB
Ruby
49 lines
1.2 KiB
Ruby
module Devise
|
|
module Strategies
|
|
class IdCardAuthenticatable < Devise::Strategies::Authenticatable
|
|
# def valid?
|
|
# env['SSL_CLIENT_S_DN_CN'].present?
|
|
# end
|
|
#
|
|
# def authenticate!
|
|
# resource = mapping.to
|
|
# user = resource.find_by_id_card(id_card)
|
|
#
|
|
# if user
|
|
# success!(user)
|
|
# else
|
|
# fail
|
|
# end
|
|
# end
|
|
#
|
|
# private
|
|
#
|
|
# def id_card
|
|
# id_card = IdCard.new
|
|
# id_card.first_name = first_name
|
|
# id_card.last_name = last_name
|
|
# id_card.personal_code = personal_code
|
|
# id_card.country_code = country_code
|
|
# id_card
|
|
# end
|
|
#
|
|
# def first_name
|
|
# env['SSL_CLIENT_S_DN_CN'].split(',').second.force_encoding('utf-8')
|
|
# end
|
|
#
|
|
# def last_name
|
|
# env['SSL_CLIENT_S_DN_CN'].split(',').first.force_encoding('utf-8')
|
|
# end
|
|
#
|
|
# def personal_code
|
|
# env['SSL_CLIENT_S_DN_CN'].split(',').last
|
|
# end
|
|
#
|
|
# def country_code
|
|
# env['SSL_CLIENT_I_DN_C']
|
|
# end
|
|
end
|
|
end
|
|
end
|
|
|
|
# Warden::Strategies.add(:id_card_authenticatable, Devise::Strategies::IdCardAuthenticatable)
|