Basic poll implementation

This commit is contained in:
Martin Lensment 2014-11-06 13:51:28 +02:00
parent c0edfd4b5b
commit 6888cd15a4
13 changed files with 82 additions and 21 deletions

View file

@ -13,6 +13,8 @@ class DomainTransfer < ActiveRecord::Base
before_create :set_wait_until
delegate :name, :valid_to, to: :domain, prefix: true
def set_wait_until
wait_time = Setting.transfer_wait_time
return if wait_time == 0

View file

@ -285,7 +285,12 @@ class Epp::EppDomain < Domain
pt = pending_transfer
if pt && params[:action] == 'approve'
return approve_pending_transfer(params[:current_user])
if approve_pending_transfer(params[:current_user])
return pt.reload
else
return false
end
end
if !pt && params[:action] != 'query'
@ -297,17 +302,24 @@ class Epp::EppDomain < Domain
return false unless can_be_transferred_to?(params[:current_user].registrar)
end
return true if pt
return pt if pt
if Setting.transfer_wait_time > 0
domain_transfers.create(
dt = domain_transfers.create(
status: DomainTransfer::PENDING,
transfer_requested_at: Time.zone.now,
transfer_to: params[:current_user].registrar,
transfer_from: registrar
)
registrar.messages.create(
body: I18n.t('transfer_requested'),
attached_obj_id: dt.id,
attached_obj_type: dt.class.to_s
)
else
domain_transfers.create(
dt = domain_transfers.create(
status: DomainTransfer::SERVER_APPROVED,
transfer_requested_at: Time.zone.now,
transferred_at: Time.zone.now,
@ -320,6 +332,8 @@ class Epp::EppDomain < Domain
self.registrar = params[:current_user].registrar
save(validate: false)
end
dt
end
# rubocop: enable Metrics/PerceivedComplexity
# rubocop: enable Metrics/MethodLength

View file

@ -16,5 +16,9 @@ class EppUser < ActiveRecord::Base
def to_s
username
end
def queued_messages
registrar.messages.queued
end
end
# rubocop: enable Metrics/ClassLength

View file

@ -1,3 +1,7 @@
class Message < ActiveRecord::Base
belongs_to :registrar
before_create -> { self.queued = true }
scope :queued, -> { where(queued: true) }
end