diff --git a/app/controllers/epp/domains_controller.rb b/app/controllers/epp/domains_controller.rb index e14501521..20351bbc5 100644 --- a/app/controllers/epp/domains_controller.rb +++ b/app/controllers/epp/domains_controller.rb @@ -56,25 +56,26 @@ class Epp::DomainsController < EppController def transfer authorize! :transfer, @domain, @password + action = params[:parsed_frame].css('transfer').first[:op] - if domain_transfer_params[:action] == 'query' + if action == 'query' if @domain.pending_transfer @domain_transfer = @domain.pending_transfer else - @domain_transfer = @domain.query_transfer(domain_transfer_params, params[:parsed_frame]) + @domain_transfer = @domain.query_transfer(params[:parsed_frame], current_user) handle_errors(@domain) and return unless @domain_transfer end - elsif domain_transfer_params[:action] == 'approve' + elsif action == 'approve' if @domain.pending_transfer - @domain_transfer = @domain.approve_transfer(domain_transfer_params, params[:parsed_frame]) + @domain_transfer = @domain.approve_transfer(params[:parsed_frame], current_user) handle_errors(@domain) and return unless @domain_transfer else epp_errors << { code: '2303', msg: I18n.t('pending_transfer_was_not_found') } handle_errors(@domain) and return end - elsif domain_transfer_params[:action] == 'reject' + elsif action == 'reject' if @domain.pending_transfer - @domain_transfer = @domain.reject_transfer(domain_transfer_params, params[:parsed_frame]) + @domain_transfer = @domain.reject_transfer(params[:parsed_frame], current_user) handle_errors(@domain) and return unless @domain_transfer else epp_errors << { code: '2303', msg: I18n.t('pending_transfer_was_not_found') } @@ -159,14 +160,6 @@ class Epp::DomainsController < EppController requires 'name' end - def domain_transfer_params - res = {} - res[:pw] = params[:parsed_frame].css('pw').first.try(:text) - res[:action] = params[:parsed_frame].css('transfer').first[:op] - res[:current_user] = current_user - res - end - def find_domain domain_name = params[:parsed_frame].css('name').text.strip.downcase @domain = Epp::Domain.find_by(name: domain_name) diff --git a/app/models/epp/domain.rb b/app/models/epp/domain.rb index 5ad86b480..0f03fba67 100644 --- a/app/models/epp/domain.rb +++ b/app/models/epp/domain.rb @@ -386,8 +386,8 @@ class Epp::Domain < Domain ### TRANSFER ### # rubocop: disable Metrics/MethodLength - def query_transfer(params, parsed_frame) - return false unless can_be_transferred_to?(params[:current_user].registrar) + def query_transfer(frame, current_user) + return false unless can_be_transferred_to?(current_user.registrar) transaction do begin @@ -395,7 +395,7 @@ class Epp::Domain < Domain dt = domain_transfers.create!( status: DomainTransfer::PENDING, transfer_requested_at: Time.zone.now, - transfer_to: params[:current_user].registrar, + transfer_to: current_user.registrar, transfer_from: registrar ) @@ -410,16 +410,16 @@ class Epp::Domain < Domain status: DomainTransfer::SERVER_APPROVED, transfer_requested_at: Time.zone.now, transferred_at: Time.zone.now, - transfer_to: params[:current_user].registrar, + transfer_to: current_user.registrar, transfer_from: registrar ) generate_auth_info - self.registrar = params[:current_user].registrar + self.registrar = current_user.registrar end - attach_legal_document(self.class.parse_legal_document_from_frame(parsed_frame)) + attach_legal_document(self.class.parse_legal_document_from_frame(frame)) save!(validate: false) return dt @@ -431,9 +431,9 @@ class Epp::Domain < Domain end # rubocop: enable Metrics/MethodLength - def approve_transfer(params, parsed_frame) + def approve_transfer(frame, current_user) pt = pending_transfer - if params[:current_user].registrar != pt.transfer_from + if current_user.registrar != pt.transfer_from add_epp_error('2304', nil, nil, I18n.t('transfer_can_be_approved_only_by_current_registrar')) return false end @@ -449,7 +449,7 @@ class Epp::Domain < Domain self.registrar = pt.transfer_to - attach_legal_document(self.class.parse_legal_document_from_frame(parsed_frame)) + attach_legal_document(self.class.parse_legal_document_from_frame(frame)) save!(validate: false) rescue => _e add_epp_error('2306', nil, nil, I18n.t('action_failed_due_to_server_error')) @@ -460,9 +460,9 @@ class Epp::Domain < Domain pt end - def reject_transfer(params, parsed_frame) + def reject_transfer(frame, current_user) pt = pending_transfer - if params[:current_user].registrar != pt.transfer_from + if current_user.registrar != pt.transfer_from add_epp_error('2304', nil, nil, I18n.t('transfer_can_be_rejected_only_by_current_registrar')) return false end @@ -473,7 +473,7 @@ class Epp::Domain < Domain status: DomainTransfer::CLIENT_REJECTED ) - attach_legal_document(self.class.parse_legal_document_from_frame(parsed_frame)) + attach_legal_document(self.class.parse_legal_document_from_frame(frame)) save!(validate: false) rescue => _e add_epp_error('2306', nil, nil, I18n.t('action_failed_due_to_server_error')) @@ -484,24 +484,6 @@ class Epp::Domain < Domain pt end - def approve_pending_transfer(current_user) - pt = pending_transfer - if current_user.registrar != pt.transfer_from - add_epp_error('2304', nil, nil, I18n.t('transfer_can_be_approved_only_by_current_registrar')) - return false - end - - pt.update( - status: DomainTransfer::CLIENT_APPROVED, - transferred_at: Time.zone.now - ) - - generate_auth_info - - self.registrar = pt.transfer_to - save(validate: false) - end - # rubocop:disable Metrics/MethodLength def keyrelay(parsed_frame, requester) if registrar == requester