Refactor + tests

This commit is contained in:
Martin Lensment 2015-05-20 13:49:34 +03:00
parent dc1ad9e6c5
commit 19e133ec6a
7 changed files with 37 additions and 25 deletions

View file

@ -18,7 +18,7 @@ class Epp::SessionsController < EppController
@api_user = ApiUser.find_by(login_params)
end
if @api_user.try(:active) && cert_valid
if @api_user.try(:active) && cert_valid && ip_white?
if parsed_frame.css('newPW').first
unless @api_user.update(password: parsed_frame.css('newPW').first.text)
response.headers['X-EPP-Returncode'] = '2200'
@ -33,6 +33,17 @@ class Epp::SessionsController < EppController
render_epp_response('login_fail')
end
end
def ip_white?
if @api_user
unless @api_user.registrar.epp_ip_white?(request.ip)
@msg = t('ip_is_not_whitelisted')
return false
end
end
true
end
# rubocop: enable Metrics/PerceivedComplexity
# rubocop: enable Metrics/CyclomaticComplexity

View file

@ -80,11 +80,7 @@ class EppController < ApplicationController
end
# VALIDATION
# rubocop: disable Metrics/PerceivedComplexity
# rubocop: disable Metrics/CyclomaticComplexity
def validate_request
handle_errors and return unless ip_white?
validation_method = "validate_#{params[:action]}"
return unless respond_to?(validation_method, true)
send(validation_method)
@ -97,22 +93,6 @@ class EppController < ApplicationController
handle_errors and return if epp_errors.any?
end
# rubocop: enable Metrics/PerceivedComplexity
# rubocop: enable Metrics/CyclomaticComplexity
def ip_white?
if current_user
unless current_user.registrar.epp_ip_white?(request.ip)
epp_errors << {
msg: t('ip_is_not_whitelisted'),
code: '2201'
}
return false
end
end
true
end
# let's follow grape's validations: https://github.com/intridea/grape/#parameter-validation-and-coercion