diff --git a/app/interactions/whois/update.rb b/app/interactions/whois/update.rb index e00824c44..a91d2900d 100644 --- a/app/interactions/whois/update.rb +++ b/app/interactions/whois/update.rb @@ -33,7 +33,11 @@ module Whois end def find_record(klass, name) - klass == DNS::Zone ? klass.find_by(origin: name) : klass.find_by(name: name) + if klass == Dispute.active + klass.find_by(domain_name: name) + else + klass == DNS::Zone ? klass.find_by(origin: name) : klass.find_by(name: name) + end end end end diff --git a/app/models/concerns/domain/disputable.rb b/app/models/concerns/domain/disputable.rb index a70d8b7cf..92c03f768 100644 --- a/app/models/concerns/domain/disputable.rb +++ b/app/models/concerns/domain/disputable.rb @@ -21,12 +21,16 @@ module Domain::Disputable @in_disputed_list ||= Dispute.active.find_by(domain_name: name).present? end + def in_auction_list? + @in_auction_list ||= Auction.find_by(domain: name, status: Auction.statuses[:started]).present? + end + def disputed? Dispute.active.where(domain_name: name).any? end def validate_disputed - return if persisted? || !in_disputed_list? + return if persisted? || !in_disputed_list? || in_auction_list? if reserved_pw.blank? errors.add(:base, :required_parameter_missing_disputed)