]> git.mxchange.org Git - friendica.git/commitdiff
Add new Model\Contact::canReceivePrivateMessages method
authorHypolite Petovan <hypolite@mrpetovan.com>
Tue, 11 Jun 2019 01:29:11 +0000 (21:29 -0400)
committerHypolite Petovan <hypolite@mrpetovan.com>
Tue, 11 Jun 2019 01:29:11 +0000 (21:29 -0400)
src/Model/Contact.php

index 01c30fad71f20a96554860e71bd8cdf934a7c574..36a424b98321f1470f1ea23de90082341dc669bd 100644 (file)
@@ -894,7 +894,7 @@ class Contact extends BaseObject
                        // If there is more than one entry we filter out the connector networks
                        if (count($r) > 1) {
                                foreach ($r as $id => $result) {
-                                       if ($result["network"] == Protocol::STATUSNET) {
+                                       if (!in_array($result["network"], Protocol::NATIVE_SUPPORT)) {
                                                unset($r[$id]);
                                        }
                                }
@@ -1078,7 +1078,7 @@ class Contact extends BaseObject
                        $profile_link = $profile_link . '?tab=profile';
                }
 
-               if (in_array($contact['network'], [Protocol::DFRN, Protocol::DIASPORA]) && !$contact['self']) {
+               if (self::canReceivePrivateMessages($contact)) {
                        $pm_url = System::baseUrl() . '/message/new/' . $contact['id'];
                }
 
@@ -2447,4 +2447,18 @@ class Contact extends BaseObject
                // Is it a forum?
                return ($contact['forum'] || $contact['prv']);
        }
+
+       /**
+        * Can the remote contact receive private messages?
+        *
+        * @param array $contact
+        * @return bool
+        */
+       public static function canReceivePrivateMessages(array $contact)
+       {
+               $protocol = $contact['network'] ?? $contact['protocol'] ?? Protocol::PHANTOM;
+               $self = $contact['self'] ?? false;
+
+               return in_array($protocol, [Protocol::DFRN, Protocol::DIASPORA, Protocol::ACTIVITYPUB]) && !$self;
+       }
 }