Final fix for domain contact privacy disclose

This commit is contained in:
Pinga 2024-09-05 18:19:23 +03:00
parent 9ca1c7f6c9
commit df76bd3665

View file

@ -354,31 +354,31 @@ function processContactUpdate($conn, $db, $xml, $clid, $database_type, $trans) {
foreach ($xml->xpath('//contact:disclose') as $node_disclose) { foreach ($xml->xpath('//contact:disclose') as $node_disclose) {
$flag = (string)$node_disclose['flag']; $flag = (string)$node_disclose['flag'];
if ($node_disclose->xpath('contact:voice')) { if ($node_disclose->xpath('//contact:voice')) {
$disclose['voice'] = $flag; $disclose['voice'] = $flag;
} }
if ($node_disclose->xpath('contact:fax')) { if ($node_disclose->xpath('//contact:fax')) {
$disclose['fax'] = $flag; $disclose['fax'] = $flag;
} }
if ($node_disclose->xpath('contact:email')) { if ($node_disclose->xpath('//contact:email')) {
$disclose['email'] = $flag; $disclose['email'] = $flag;
} }
if ($node_disclose->xpath('contact:name[@type="int"]')) { if ($node_disclose->xpath('//contact:name[@type="int"]')) {
$disclose['name_int'] = $flag; $disclose['name_int'] = $flag;
} }
if ($node_disclose->xpath('contact:name[@type="loc"]')) { if ($node_disclose->xpath('//contact:name[@type="loc"]')) {
$disclose['name_loc'] = $flag; $disclose['name_loc'] = $flag;
} }
if ($node_disclose->xpath('contact:org[@type="int"]')) { if ($node_disclose->xpath('//contact:org[@type="int"]')) {
$disclose['org_int'] = $flag; $disclose['org_int'] = $flag;
} }
if ($node_disclose->xpath('contact:org[@type="loc"]')) { if ($node_disclose->xpath('//contact:org[@type="loc"]')) {
$disclose['org_loc'] = $flag; $disclose['org_loc'] = $flag;
} }
if ($node_disclose->xpath('contact:addr[@type="int"]')) { if ($node_disclose->xpath('//contact:addr[@type="int"]')) {
$disclose['addr_int'] = $flag; $disclose['addr_int'] = $flag;
} }
if ($node_disclose->xpath('contact:addr[@type="loc"]')) { if ($node_disclose->xpath('//contact:addr[@type="loc"]')) {
$disclose['addr_loc'] = $flag; $disclose['addr_loc'] = $flag;
} }
} }
@ -554,20 +554,6 @@ function processContactUpdate($conn, $db, $xml, $clid, $database_type, $trans) {
$contact_id, $contact_id,
'int' 'int'
]); ]);
if (isset($disclose['name_int']) || isset($disclose['org_int']) || isset($disclose['addr_int'])) {
$query = "UPDATE contact_postalInfo SET disclose_name_int = ?, disclose_org_int = ?, disclose_addr_int = ? WHERE contact_id = ? AND type = ?";
$stmt = $db->prepare($query);
// Use the disclose array if set, otherwise fall back to the extracted values
$stmt->execute([
isset($disclose['name_int']) ? $disclose['name_int'] : $disclose_name_int, // Use disclose array if set, otherwise use the extracted value
isset($disclose['org_int']) ? $disclose['org_int'] : $disclose_org_int, // Same logic for org
isset($disclose['addr_int']) ? $disclose['addr_int'] : $disclose_addr_int, // Same logic for address
$contact_id,
'int'
]);
}
} }
if ($postalInfoLoc) { if ($postalInfoLoc) {
@ -589,6 +575,21 @@ function processContactUpdate($conn, $db, $xml, $clid, $database_type, $trans) {
$contact_id, $contact_id,
'loc' 'loc'
]); ]);
}
if (isset($disclose['name_int']) || isset($disclose['org_int']) || isset($disclose['addr_int'])) {
$query = "UPDATE contact_postalInfo SET disclose_name_int = ?, disclose_org_int = ?, disclose_addr_int = ? WHERE contact_id = ? AND type = ?";
$stmt = $db->prepare($query);
// Use the disclose array if set, otherwise fall back to the extracted values
$stmt->execute([
isset($disclose['name_int']) ? $disclose['name_int'] : $disclose_name_int, // Use disclose array if set, otherwise use the extracted value
isset($disclose['org_int']) ? $disclose['org_int'] : $disclose_org_int, // Same logic for org
isset($disclose['addr_int']) ? $disclose['addr_int'] : $disclose_addr_int, // Same logic for address
$contact_id,
'int'
]);
}
if (isset($disclose['name_loc']) || isset($disclose['org_loc']) || isset($disclose['addr_loc'])) { if (isset($disclose['name_loc']) || isset($disclose['org_loc']) || isset($disclose['addr_loc'])) {
$query = "UPDATE contact_postalInfo SET disclose_name_loc = ?, disclose_org_loc = ?, disclose_addr_loc = ? WHERE contact_id = ? AND type = ?"; $query = "UPDATE contact_postalInfo SET disclose_name_loc = ?, disclose_org_loc = ?, disclose_addr_loc = ? WHERE contact_id = ? AND type = ?";
@ -603,7 +604,6 @@ function processContactUpdate($conn, $db, $xml, $clid, $database_type, $trans) {
'int' 'int'
]); ]);
} }
}
// Update contact_authInfo for 'pw' // Update contact_authInfo for 'pw'
if (!empty($e_authInfo_pw)) { if (!empty($e_authInfo_pw)) {