From f51a254ed0abe480d0cefcd8ff41de9bec4fa7f6 Mon Sep 17 00:00:00 2001 From: Michael Date: Sun, 1 Apr 2018 05:07:35 +0000 Subject: [PATCH] Public contacts are not permitted for suggestions or mails --- src/Protocol/DFRN.php | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/src/Protocol/DFRN.php b/src/Protocol/DFRN.php index 3d836acf9e..cb23c4bf12 100644 --- a/src/Protocol/DFRN.php +++ b/src/Protocol/DFRN.php @@ -2681,6 +2681,10 @@ class DFRN return true; } } else { // $entrytype == DFRN_TOP_LEVEL + if ($importer["readonly"]) { + logger('ignoring read-only contact '.$importer["id"]); + return; + } if ($importer["uid"] == 0) { logger("Contact ".$importer["id"]." isn't known to user ".$importer["importer_uid"].". The post will be ignored.", LOGGER_DEBUG); return; @@ -2857,21 +2861,16 @@ class DFRN self::processRelocation($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"); - foreach ($mails as $mail) { - self::processMail($xpath, $mail, $importer); - } + if (($importer["uid"] != 0) && !$importer["readonly"]) { + $mails = $xpath->query("/atom:feed/dfrn:mail"); + foreach ($mails as $mail) { + self::processMail($xpath, $mail, $importer); + } - $suggestions = $xpath->query("/atom:feed/dfrn:suggest"); - foreach ($suggestions as $suggestion) { - self::processSuggestion($xpath, $suggestion, $importer); + $suggestions = $xpath->query("/atom:feed/dfrn:suggest"); + foreach ($suggestions as $suggestion) { + self::processSuggestion($xpath, $suggestion, $importer); + } } $deletions = $xpath->query("/atom:feed/at:deleted-entry"); -- 2.39.5