From 5f20b27a40ceb3a749078179262283c7db9aaeb9 Mon Sep 17 00:00:00 2001 From: thom Date: Wed, 14 Oct 2020 15:29:44 +0200 Subject: [PATCH 1/2] Open existing DMARC record instead of new one if one exists (#5821) --- interface/web/dns/dns_dmarc_edit.php | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/interface/web/dns/dns_dmarc_edit.php b/interface/web/dns/dns_dmarc_edit.php index 6b720c0f38..8b6f3a97b1 100644 --- a/interface/web/dns/dns_dmarc_edit.php +++ b/interface/web/dns/dns_dmarc_edit.php @@ -88,13 +88,13 @@ class page_action extends tform_actions { $dmarc_sp = 'same'; //* check for an existing dmarc-record - $sql = "SELECT data, active FROM dns_rr WHERE data LIKE 'v=DMARC1%' AND zone = ? AND name = ? AND " . $app->tform->getAuthSQL('r'); - $rec = $app->db->queryOneRecord($sql, $zone, '_dmarc.'.$domain_name.'.'); - if ( isset($rec) && !empty($rec) ) { + $sql = "SELECT data, active FROM dns_rr WHERE data LIKE 'v=DMARC1%' AND zone = ? AND name LIKE ? AND " . $app->tform->getAuthSQL('r'); + $rec = $app->db->queryOneRecord($sql, $zone, '_dmarc%'); + if (isset($rec) && !empty($rec) ) { $this->id = 1; $old_data = strtolower($rec['data']); $app->tpl->setVar("data", $old_data, true); - if ($rec['active'] == 'Y') $app->tpl->setVar("active", "CHECKED"); else $app->tpl->setVar("active", "UNCHECKED"); + //if ($rec['active'] == 'Y') $app->tpl->setVar("active", "CHECKED"); else $app->tpl->setVar("active", "UNCHECKED"); $dmarc_rua = ''; $dmarc_ruf = ''; $dmac_rf = ''; @@ -120,13 +120,13 @@ class page_action extends tform_actions { if (preg_match("/^pct=/", $part)) $dmarc_pct = str_replace('pct=', '', $part); if (preg_match("/^ri=/", $part)) $dmarc_ri = str_replace('ri=', '', $part); } - } + } //set html-values $app->tpl->setVar('domain', $domain_name, true); //create dmarc-policy-list - $dmarc_policy_value = array( + $dmarc_policy_value = array( 'none' => 'dmarc_policy_none_txt', 'quarantine' => 'dmarc_policy_quarantine_txt', 'reject' => 'dmarc_policy_reject_txt', @@ -152,7 +152,7 @@ class page_action extends tform_actions { unset($temp); //create dmarc-adkim-list - $dmarc_adkim_value = array( + $dmarc_adkim_value = array( 'r' => 'dmarc_adkim_r_txt', 's' => 'dmarc_adkim_s_txt', ); @@ -164,7 +164,7 @@ class page_action extends tform_actions { $app->tpl->setVar('dmarc_adkim', $dmarc_adkim_list); //create dmarc-aspf-list - $dmarc_aspf_value = array( + $dmarc_aspf_value = array( 'r' => 'dmarc_aspf_r_txt', 's' => 'dmarc_aspf_s_txt', ); @@ -183,7 +183,7 @@ class page_action extends tform_actions { $app->tpl->setVar("dmarc_ri", $dmarc_ri, true); //create dmarc-sp-list - $dmarc_sp_value = array( + $dmarc_sp_value = array( 'same' => 'dmarc_sp_same_txt', 'none' => 'dmarc_sp_none_txt', 'quarantine' => 'dmarc_sp_quarantine_txt', @@ -251,7 +251,7 @@ class page_action extends tform_actions { $this->dataRecord['dmarc_pct'] = $app->functions->intval($this->dataRecord['dmarc_pct']); if ($this->dataRecord['dmarc_pct'] < 0) $this->dataRecord['dmarc_pct'] = 0; if ($this->dataRecord['dmarc_pct'] > 100) $this->dataRecord['dmarc_pct'] = 100; - + //create dmarc-record $dmarc_record[] = 'p='.$this->dataRecord['dmarc_policy']; @@ -270,7 +270,7 @@ class page_action extends tform_actions { unset ($dmarc_rua); unset($temp); } - + if (!empty($this->dataRecord['dmarc_ruf'])) { $dmarc_ruf = explode(' ', $this->dataRecord['dmarc_ruf']); $dmarc_ruf = array_filter($dmarc_ruf); @@ -286,7 +286,7 @@ class page_action extends tform_actions { unset ($dmarc_ruf); unset($temp); } - + $fo_rec = array(); if (isset($this->dataRecord['dmarc_fo0'])) $fo_rec[] = '0'; if (isset($this->dataRecord['dmarc_fo1'])) $fo_rec[] = '1'; @@ -328,7 +328,7 @@ class page_action extends tform_actions { $this->dataRecord['name'] = '_dmarc.' . $soa['origin']; if (isset($this->dataRecord['active'])) $this->dataRecord['active'] = 'Y'; - + // Set the server ID of the rr record to the same server ID as the parent record. $this->dataRecord["server_id"] = $soa["server_id"]; -- GitLab From 36a1ba92741613a4280cd08a03094d6ebaaa49b2 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Fri, 23 Oct 2020 13:48:17 +0200 Subject: [PATCH 2/2] Apply 1 suggestion(s) to 1 file(s) --- interface/web/dns/dns_dmarc_edit.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/interface/web/dns/dns_dmarc_edit.php b/interface/web/dns/dns_dmarc_edit.php index 8b6f3a97b1..b2d07b0a9e 100644 --- a/interface/web/dns/dns_dmarc_edit.php +++ b/interface/web/dns/dns_dmarc_edit.php @@ -88,8 +88,8 @@ class page_action extends tform_actions { $dmarc_sp = 'same'; //* check for an existing dmarc-record - $sql = "SELECT data, active FROM dns_rr WHERE data LIKE 'v=DMARC1%' AND zone = ? AND name LIKE ? AND " . $app->tform->getAuthSQL('r'); - $rec = $app->db->queryOneRecord($sql, $zone, '_dmarc%'); + $sql = "SELECT data, active FROM dns_rr WHERE data LIKE 'v=DMARC1%' AND zone = ? AND name LIKE ? AND " . $app->tform->getAuthSQL('r') . " ORDER BY (name = ?) DESC"; + $rec = $app->db->queryOneRecord($sql, $zone, '_dmarc%', '_dmarc.'.$domain_name.'.'); if (isset($rec) && !empty($rec) ) { $this->id = 1; $old_data = strtolower($rec['data']); -- GitLab