Process "relocate" messages even if we are ignoring a contact

This commit is contained in:
Michael 2017-10-09 05:02:50 +00:00
parent ab60641e3b
commit 09af73168c

View File

@ -2829,13 +2829,6 @@ class dfrn {
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->loadXML($xml);
@ -2878,11 +2871,7 @@ class dfrn {
$accounttype = intval($xpath->evaluate("/atom:feed/dfrn:account_type/text()", $context)->item(0)->nodeValue);
if ($accounttype != $importer["contact-type"]) {
/// @TODO this way is the norm or putting ); at the end of the line?
q("UPDATE `contact` SET `contact-type` = %d WHERE `id` = %d",
intval($accounttype),
intval($importer["id"])
);
dba::update('contact', array('contact-type' => $accounttype), array('id' => $importer["id"]));
}
}
@ -2891,10 +2880,21 @@ class dfrn {
$forum = intval($xpath->evaluate("/atom:feed/dfrn:community/text()", $context)->item(0)->nodeValue);
if ($forum != $importer["forum"]) {
q("UPDATE `contact` SET `forum` = %d WHERE `forum` != %d AND `id` = %d",
intval($forum), intval($forum),
intval($importer["id"])
);
$condition = array('`forum` != ? AND `id` = ?', $forum, $importer["id"]);
dba::update('contact', array('forum' => $forum), $condition);
}
// 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");
@ -2907,11 +2907,6 @@ class dfrn {
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");
foreach ($deletions AS $deletion) {
self::process_deletion($xpath, $deletion, $importer);