Merge pull request #114 from internetee/story/116954569-new-id-cc

story#116954569 - Parse id-card data in new apache
This commit is contained in:
Vladimir Krylov 2016-04-05 15:40:41 +03:00
commit 8709e51cfd

View file

@ -30,10 +30,20 @@ class RegistrantUser < User
return false if issuer_organization != ACCEPTED_ISSUER return false if issuer_organization != ACCEPTED_ISSUER
idc_data.force_encoding('UTF-8') idc_data.force_encoding('UTF-8')
identity_code = idc_data.scan(/serialNumber=(\d+)/).flatten.first
country = idc_data.scan(/^\/C=(.{2})/).flatten.first # handling here new and old mode
first_name = idc_data.scan(%r{/GN=(.+)/serialNumber}).flatten.first if idc_data.starts_with?("/")
last_name = idc_data.scan(%r{/SN=(.+)/GN}).flatten.first identity_code = idc_data.scan(/serialNumber=(\d+)/).flatten.first
country = idc_data.scan(/^\/C=(.{2})/).flatten.first
first_name = idc_data.scan(%r{/GN=(.+)/serialNumber}).flatten.first
last_name = idc_data.scan(%r{/SN=(.+)/GN}).flatten.first
else
parse_str = "," + idc_data
identity_code = parse_str.scan(/,serialNumber=(\d+)/).flatten.first
country = parse_str.scan(/,C=(.{2})/).flatten.first
first_name = parse_str.scan(/,GN=([^,]+)/).flatten.first
last_name = parse_str.scan(/,SN=([^,]+)/).flatten.first
end
u = where(registrant_ident: "#{country}-#{identity_code}").first_or_create u = where(registrant_ident: "#{country}-#{identity_code}").first_or_create
u.username = "#{first_name} #{last_name}" u.username = "#{first_name} #{last_name}"