From 925115778b0042b030badc1c4ca73b9ab44ea1ff Mon Sep 17 00:00:00 2001 From: Charl Mert <cmert@lbsd.net> Date: Wed, 30 Apr 2014 12:27:24 +0200 Subject: [PATCH] setting domain to expired if owned by different registrar closes issue #7 --- modules/registrars/cozaepp/cozaepp.php | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/modules/registrars/cozaepp/cozaepp.php b/modules/registrars/cozaepp/cozaepp.php index c64ab54..848453c 100644 --- a/modules/registrars/cozaepp/cozaepp.php +++ b/modules/registrars/cozaepp/cozaepp.php @@ -1223,13 +1223,13 @@ function cozaepp_TransferSync($params) { $coderes = $doc->getElementsByTagName('result')->item(0)->getAttribute('code'); $msg = $doc->getElementsByTagName('msg')->item(0)->nodeValue; # Check result - if($coderes != '1000') { + if ($coderes != '1000') { $values['error'] = "TransferSync/domain-info($domain): Code("._cozaepp_message($coderes).") $msg"; return $values; } # Check if we can get a status back - if($doc->getElementsByTagName('status')->item(0)) { + if ($doc->getElementsByTagName('status')->item(0)) { $statusres = $doc->getElementsByTagName('status')->item(0)->getAttribute('s'); $createdate = substr($doc->getElementsByTagName('crDate')->item(0)->nodeValue,0,10); $nextduedate = substr($doc->getElementsByTagName('exDate')->item(0)->nodeValue,0,10); @@ -1295,19 +1295,35 @@ function cozaepp_Sync($params) { $doc->loadXML($request); logModuleCall('Cozaepp', 'Sync', $xml, $request); + # Initialize the owningRegistrar which will contain the owning registrar + # The <domain:clID> element contains the unique identifier of the registrar that owns the domain. + $owningRegistrar = NULL; + $coderes = $doc->getElementsByTagName('result')->item(0)->getAttribute('code'); $msg = $doc->getElementsByTagName('msg')->item(0)->nodeValue; # Check result - if($coderes != '1000') { + if ($coderes == '1000') { + if ( + $doc->getElementsByTagName('infData') && + $doc->getElementsByTagName('infData')->item(0)->getElementsByTagName('ns')->item(0) && + $doc->getElementsByTagName('infData')->item(0)->getElementsByTagName('clID') + ) { + $owningRegistrar = $doc->getElementsByTagName('infData')->item(0)->getElementsByTagName('clID')->item(0)->nodeValue; + } + } else { $values['error'] = "Sync/domain-info($domain): Code("._cozaepp_message($coderes).") $msg"; return $values; } # Check if we can get a status back - if($doc->getElementsByTagName('status')->item(0)) { + if ($doc->getElementsByTagName('status')->item(0)) { $statusres = $doc->getElementsByTagName('status')->item(0)->getAttribute('s'); $createdate = substr($doc->getElementsByTagName('crDate')->item(0)->nodeValue,0,10); $nextduedate = substr($doc->getElementsByTagName('exDate')->item(0)->nodeValue,0,10); + } else if (!empty($owningRegistrar) && $owningRegistrar != $username) { + # If we got an owningRegistrar back and we're not the owning registrar, return error + $values['error'] = "Sync/domain-info($domain): Domain belongs to a different registrar, (owning registrar: $owningRegistrar, your registrar: $username)"; + return $values; } else { $values['error'] = "Sync/domain-info($domain): Domain not found"; return $values; -- GitLab