Merge pull request #3772 from annando/relocate-ignore

Process "relocate" messages even if we are ignoring a contact
This commit is contained in:
Tobias Diekershoff 2017-10-09 05:16:32 +00:00 committed by GitHub
commit 4c75c59039

View file

@ -2829,13 +2829,6 @@ class dfrn {
return 400; return 400;
} }
if ($importer["readonly"]) {
// We aren't receiving stuff from this person. But we will quietly ignore them
// rather than a blatant "go away" message.
logger('ignoring contact '.$importer["id"]);
return 403;
}
$doc = new DOMDocument(); $doc = new DOMDocument();
@$doc->loadXML($xml); @$doc->loadXML($xml);
@ -2878,11 +2871,7 @@ class dfrn {
$accounttype = intval($xpath->evaluate("/atom:feed/dfrn:account_type/text()", $context)->item(0)->nodeValue); $accounttype = intval($xpath->evaluate("/atom:feed/dfrn:account_type/text()", $context)->item(0)->nodeValue);
if ($accounttype != $importer["contact-type"]) { if ($accounttype != $importer["contact-type"]) {
/// @TODO this way is the norm or putting ); at the end of the line? dba::update('contact', array('contact-type' => $accounttype), array('id' => $importer["id"]));
q("UPDATE `contact` SET `contact-type` = %d WHERE `id` = %d",
intval($accounttype),
intval($importer["id"])
);
} }
} }
@ -2891,10 +2880,21 @@ class dfrn {
$forum = intval($xpath->evaluate("/atom:feed/dfrn:community/text()", $context)->item(0)->nodeValue); $forum = intval($xpath->evaluate("/atom:feed/dfrn:community/text()", $context)->item(0)->nodeValue);
if ($forum != $importer["forum"]) { if ($forum != $importer["forum"]) {
q("UPDATE `contact` SET `forum` = %d WHERE `forum` != %d AND `id` = %d", $condition = array('`forum` != ? AND `id` = ?', $forum, $importer["id"]);
intval($forum), intval($forum), dba::update('contact', array('forum' => $forum), $condition);
intval($importer["id"]) }
);
// We are processing relocations even if we are ignoring a contact
$relocations = $xpath->query("/atom:feed/dfrn:relocate");
foreach ($relocations AS $relocation) {
self::process_relocation($xpath, $relocation, $importer);
}
if ($importer["readonly"]) {
// We aren't receiving stuff from this person. But we will quietly ignore them
// rather than a blatant "go away" message.
logger('ignoring contact '.$importer["id"]);
return 403;
} }
$mails = $xpath->query("/atom:feed/dfrn:mail"); $mails = $xpath->query("/atom:feed/dfrn:mail");
@ -2907,11 +2907,6 @@ class dfrn {
self::process_suggestion($xpath, $suggestion, $importer); self::process_suggestion($xpath, $suggestion, $importer);
} }
$relocations = $xpath->query("/atom:feed/dfrn:relocate");
foreach ($relocations AS $relocation) {
self::process_relocation($xpath, $relocation, $importer);
}
$deletions = $xpath->query("/atom:feed/at:deleted-entry"); $deletions = $xpath->query("/atom:feed/at:deleted-entry");
foreach ($deletions AS $deletion) { foreach ($deletions AS $deletion) {
self::process_deletion($xpath, $deletion, $importer); self::process_deletion($xpath, $deletion, $importer);