mirror of
https://github.com/internetee/registry.git
synced 2025-05-17 09:57:23 +02:00
Merge pull request #638 from internetee/registry-609-master
Registry 609 to master
This commit is contained in:
commit
acfe0552fc
2 changed files with 33 additions and 3 deletions
|
@ -53,7 +53,7 @@ class Registrar
|
||||||
end
|
end
|
||||||
|
|
||||||
def id
|
def id
|
||||||
@user = ApiUser.find_by_idc_data(request.env['SSL_CLIENT_S_DN'])
|
@user = ApiUser.find_by_idc_data_and_allowed(request.env['SSL_CLIENT_S_DN'], request.ip)
|
||||||
|
|
||||||
if @user
|
if @user
|
||||||
sign_in(@user, event: :authentication)
|
sign_in(@user, event: :authentication)
|
||||||
|
@ -87,7 +87,11 @@ class Registrar
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if Setting.registrar_ip_whitelist_enabled
|
||||||
|
@user = find_user_by_idc_and_allowed(response.user_id_code)
|
||||||
|
else
|
||||||
@user = find_user_by_idc(response.user_id_code)
|
@user = find_user_by_idc(response.user_id_code)
|
||||||
|
end
|
||||||
|
|
||||||
if @user.persisted?
|
if @user.persisted?
|
||||||
session[:user_id_code] = response.user_id_code
|
session[:user_id_code] = response.user_id_code
|
||||||
|
@ -112,7 +116,7 @@ class Registrar
|
||||||
when 'OUTSTANDING_TRANSACTION'
|
when 'OUTSTANDING_TRANSACTION'
|
||||||
render json: { message: t(:check_your_phone_for_confirmation_code) }, status: :ok
|
render json: { message: t(:check_your_phone_for_confirmation_code) }, status: :ok
|
||||||
when 'USER_AUTHENTICATED'
|
when 'USER_AUTHENTICATED'
|
||||||
@user = find_user_by_idc(session[:user_id_code])
|
@user = find_user_by_idc_and_allowed(session[:user_id_code])
|
||||||
sign_in @user
|
sign_in @user
|
||||||
flash[:notice] = t(:welcome)
|
flash[:notice] = t(:welcome)
|
||||||
flash.keep(:notice)
|
flash.keep(:notice)
|
||||||
|
@ -149,6 +153,18 @@ class Registrar
|
||||||
ApiUser.find_by(identity_code: idc) || User.new
|
ApiUser.find_by(identity_code: idc) || User.new
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def find_user_by_idc_and_allowed(idc)
|
||||||
|
return User.new unless idc
|
||||||
|
possible_users = ApiUser.where(identity_code: idc) || User.new
|
||||||
|
possible_users.each do |selected_user|
|
||||||
|
if selected_user.registrar.white_ips.registrar_area.include_ip?(request.ip)
|
||||||
|
return selected_user
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def check_ip_restriction
|
def check_ip_restriction
|
||||||
ip_restriction = Authorization::RestrictedIP.new(request.ip)
|
ip_restriction = Authorization::RestrictedIP.new(request.ip)
|
||||||
allowed = ip_restriction.can_access_registrar_area_sign_in_page?
|
allowed = ip_restriction.can_access_registrar_area_sign_in_page?
|
||||||
|
|
|
@ -51,6 +51,20 @@ class ApiUser < User
|
||||||
|
|
||||||
find_by(identity_code: identity_code)
|
find_by(identity_code: identity_code)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def find_by_idc_data_and_allowed(idc_data, ip)
|
||||||
|
return false if idc_data.blank?
|
||||||
|
identity_code = idc_data.scan(/serialNumber=(\d+)/).flatten.first
|
||||||
|
|
||||||
|
return false if ip.blank?
|
||||||
|
possible_users = where(identity_code: identity_code)
|
||||||
|
possible_users.each do |selected_user|
|
||||||
|
if selected_user.registrar.white_ips.registrar_area.include_ip?(ip)
|
||||||
|
return selected_user
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def registrar_typeahead
|
def registrar_typeahead
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue