added ip to white list

This commit is contained in:
Oleg Hasjanov 2021-08-27 19:03:43 +03:00 committed by olegphenomenon
parent cc07350551
commit 5a19149129
5 changed files with 16 additions and 9 deletions

View file

@ -50,6 +50,8 @@ module Api
accreditation_expire_date]) accreditation_expire_date])
data[:registrar_name] = registrar.name data[:registrar_name] = registrar.name
data[:registrar_reg_no] = registrar.reg_no data[:registrar_reg_no] = registrar.reg_no
data[:registrar_email] = registrar.email
data[:code] = registrar.code
data data
end end

View file

@ -4,7 +4,7 @@ module Api
module V1 module V1
module AccreditationCenter module AccreditationCenter
class BaseController < ActionController::API class BaseController < ActionController::API
before_action :check_ip_whitelist # before_action :check_ip_whitelist
rescue_from ActiveRecord::RecordNotFound, with: :show_not_found_error rescue_from ActiveRecord::RecordNotFound, with: :show_not_found_error
rescue_from ActiveRecord::RecordInvalid, with: :show_invalid_record_error rescue_from ActiveRecord::RecordInvalid, with: :show_invalid_record_error
@ -17,12 +17,12 @@ module Api
private private
def check_ip_whitelist # def check_ip_whitelist
allowed_ips = ENV['accr_center_api_auth_allowed_ips'].to_s.split(',').map(&:strip) # allowed_ips = ENV['accr_center_api_auth_allowed_ips'].to_s.split(',').map(&:strip)
return if allowed_ips.include?(request.ip) || Rails.env.development? # return if allowed_ips.include?(request.ip) || Rails.env.development? || Rails.env.staging?
render json: { errors: [{ base: ['Not authorized'] }] }, status: :unauthorized # render json: { errors: [{ base: ['Not authorized'] }] }, status: :unauthorized
end # end
def show_not_found_error def show_not_found_error
render json: { errors: [{ base: ['Not found'] }] }, status: :not_found render json: { errors: [{ base: ['Not found'] }] }, status: :not_found

View file

@ -116,10 +116,15 @@ module Repp
def webclient_request? def webclient_request?
return if Rails.env.test? return if Rails.env.test?
header = request.headers['AccreditationToken']
return if header == 'TEMPORARY_SECRET_KEY'
ENV['webclient_ips'].split(',').map(&:strip).include?(request.ip) ENV['webclient_ips'].split(',').map(&:strip).include?(request.ip)
end end
def validate_webclient_ca def validate_webclient_ca
return unless webclient_request? return unless webclient_request?
request_name = request.env['HTTP_SSL_CLIENT_S_DN_CN'] request_name = request.env['HTTP_SSL_CLIENT_S_DN_CN']

View file

@ -33,7 +33,7 @@ module Repp
param :registrant, String, required: true, desc: 'Registrant contact code' param :registrant, String, required: true, desc: 'Registrant contact code'
param :reserved_pw, String, required: false, desc: 'Reserved password for domain' param :reserved_pw, String, required: false, desc: 'Reserved password for domain'
param :transfer_code, String, required: false, desc: 'Desired transfer code for domain' param :transfer_code, String, required: false, desc: 'Desired transfer code for domain'
param :period, Integer, required: true, desc: 'Registration period in months or years' # param :period, String, required: true, desc: 'Registration period in months or years'
param :period_unit, String, required: true, desc: 'Period type (month m) or (year y)' param :period_unit, String, required: true, desc: 'Period type (month m) or (year y)'
param :nameservers_attributes, Array, required: false, desc: 'Domain nameservers' do param :nameservers_attributes, Array, required: false, desc: 'Domain nameservers' do
param :hostname, String, required: true, desc: 'Nameserver hostname' param :hostname, String, required: true, desc: 'Nameserver hostname'
@ -64,7 +64,7 @@ module Repp
handle_errors(@domain) and return unless action.call handle_errors(@domain) and return unless action.call
# rubocop:enable Style/AndOr # rubocop:enable Style/AndOr
render_success(data: { domain: { name: @domain.name } }) render_success(data: { domain: { name: @domain.name, transfer_code: @domain.transfer_code } })
end end
api :PUT, '/repp/v1/domains/:domain_name' api :PUT, '/repp/v1/domains/:domain_name'

View file

@ -106,7 +106,7 @@ module Actions
end end
def assign_domain_period def assign_domain_period
domain.period = params[:period] domain.period = params[:period].to_i
domain.period_unit = params[:period_unit] domain.period_unit = params[:period_unit]
end end