mirror of
https://github.com/internetee/registry.git
synced 2025-05-19 10:49:39 +02:00
Domain transfer approval
This commit is contained in:
parent
f42a390968
commit
c8e0a7f5e0
7 changed files with 48 additions and 8 deletions
|
@ -1,5 +1,5 @@
|
||||||
class Client::DomainTransfersController < ClientController
|
class Client::DomainTransfersController < ClientController
|
||||||
before_action :set_domain_transfer, only: :show
|
before_action :set_domain_transfer, only: [:show, :approve]
|
||||||
before_action :set_domain, only: [:create]
|
before_action :set_domain, only: [:create]
|
||||||
|
|
||||||
def new
|
def new
|
||||||
|
@ -12,11 +12,22 @@ class Client::DomainTransfersController < ClientController
|
||||||
flash[:notice] = I18n.t('shared.domain_transfer_requested')
|
flash[:notice] = I18n.t('shared.domain_transfer_requested')
|
||||||
redirect_to [:client, @domain_transfer]
|
redirect_to [:client, @domain_transfer]
|
||||||
else
|
else
|
||||||
flash[:alert] = I18n.t('shared.other_registrar_has_already_requested_to_transfer_this_domain')
|
flash.now[:alert] = I18n.t('shared.other_registrar_has_already_requested_to_transfer_this_domain')
|
||||||
render 'new'
|
render 'new'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def approve
|
||||||
|
if can? :approve_as_client, @domain_transfer
|
||||||
|
@domain_transfer.approve_as_client
|
||||||
|
flash[:notice] = I18n.t('shared.domain_transfer_approved')
|
||||||
|
else
|
||||||
|
flash[:alert] = I18n.t('shared.failed_to_approve_domain_transfer')
|
||||||
|
end
|
||||||
|
|
||||||
|
redirect_to [:client, @domain_transfer]
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def set_domain_transfer
|
def set_domain_transfer
|
||||||
|
@ -45,11 +56,17 @@ class Client::DomainTransfersController < ClientController
|
||||||
@domain_transfer = DomainTransfer.new
|
@domain_transfer = DomainTransfer.new
|
||||||
@domain = Domain.find_by(name: params[:domain_name])
|
@domain = Domain.find_by(name: params[:domain_name])
|
||||||
if @domain
|
if @domain
|
||||||
return if @domain.auth_info == params[:domain_pw]
|
if @domain.auth_info != params[:domain_pw]
|
||||||
flash[:alert] = I18n.t('shared.password_invalid')
|
flash.now[:alert] = I18n.t('shared.password_invalid')
|
||||||
render 'new'
|
render 'new' and return
|
||||||
|
end
|
||||||
|
|
||||||
|
if @domain.registrar == current_user.registrar
|
||||||
|
flash.now[:alert] = I18n.t('shared.domain_already_belongs_to_the_querying_registrar')
|
||||||
|
render 'new' and return
|
||||||
|
end
|
||||||
else
|
else
|
||||||
flash[:alert] = I18n.t('shared.domain_was_not_found')
|
flash.now[:alert] = I18n.t('shared.domain_was_not_found')
|
||||||
render 'new'
|
render 'new'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
class ClientController < ApplicationController
|
class ClientController < ApplicationController
|
||||||
def current_user
|
def current_user
|
||||||
EppUser.last
|
EppUser.first
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -6,6 +6,7 @@ class Ability
|
||||||
# user ||= EppUser.last
|
# user ||= EppUser.last
|
||||||
|
|
||||||
can :read, DomainTransfer, transfer_to_id: user.registrar.id
|
can :read, DomainTransfer, transfer_to_id: user.registrar.id
|
||||||
|
can :approve_as_client, DomainTransfer, transfer_from_id: user.registrar.id, status: DomainTransfer::PENDING
|
||||||
# Define abilities for the passed in user here. For example:
|
# Define abilities for the passed in user here. For example:
|
||||||
#
|
#
|
||||||
# user ||= User.new # guest user (not logged in)
|
# user ||= User.new # guest user (not logged in)
|
||||||
|
|
|
@ -15,4 +15,16 @@ class DomainTransfer < ActiveRecord::Base
|
||||||
wait_time = SettingGroup.domain_general.setting(:transfer_wait_time).value.to_i
|
wait_time = SettingGroup.domain_general.setting(:transfer_wait_time).value.to_i
|
||||||
transfer_requested_at + wait_time.hours
|
transfer_requested_at + wait_time.hours
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def approve_as_client
|
||||||
|
transaction do
|
||||||
|
self.status = DomainTransfer::CLIENT_APPROVED
|
||||||
|
self.transferred_at = Time.zone.now
|
||||||
|
save!
|
||||||
|
|
||||||
|
domain.generate_auth_info
|
||||||
|
domain.registrar = transfer_to
|
||||||
|
domain.save!
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -4,6 +4,8 @@
|
||||||
= "#{t('shared.domain_transfer')}"
|
= "#{t('shared.domain_transfer')}"
|
||||||
.col-sm-6
|
.col-sm-6
|
||||||
%h2.text-right.text-center-xs
|
%h2.text-right.text-center-xs
|
||||||
|
- if can? :approve_as_client, @domain_transfer
|
||||||
|
= button_to(t('shared.approve'), approve_client_domain_transfer_path, class: 'btn btn-primary')
|
||||||
|
|
||||||
%hr
|
%hr
|
||||||
.row
|
.row
|
||||||
|
|
|
@ -280,6 +280,10 @@ en:
|
||||||
status: 'Status'
|
status: 'Status'
|
||||||
eedirekt: 'EEDirekt'
|
eedirekt: 'EEDirekt'
|
||||||
domain_transfer_requested: 'Domain transfer requested!'
|
domain_transfer_requested: 'Domain transfer requested!'
|
||||||
|
domain_transfer_approved: 'Domain transfer approved!'
|
||||||
|
failed_to_approve_domain_transfer: 'Failed to approve domain transfer'
|
||||||
|
approve: 'Approve'
|
||||||
|
domain_already_belongs_to_the_querying_registrar: 'Domain already belongs to the querying registrar'
|
||||||
other_registrar_has_already_requested_to_transfer_this_domain: 'Other registrar has already requested to transfer this domain.'
|
other_registrar_has_already_requested_to_transfer_this_domain: 'Other registrar has already requested to transfer this domain.'
|
||||||
transfer: 'Transfer'
|
transfer: 'Transfer'
|
||||||
transfer_domain: 'Transfer domain'
|
transfer_domain: 'Transfer domain'
|
||||||
|
|
|
@ -23,7 +23,11 @@ Rails.application.routes.draw do
|
||||||
|
|
||||||
namespace(:client) do
|
namespace(:client) do
|
||||||
resources :domains
|
resources :domains
|
||||||
resources :domain_transfers
|
resources :domain_transfers do
|
||||||
|
member do
|
||||||
|
post 'approve'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
resources :contacts do
|
resources :contacts do
|
||||||
collection do
|
collection do
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue