Block communication with Diaspora for communities
This commit is contained in:
parent
2b0518ac04
commit
29d83c0ffb
|
@ -818,6 +818,15 @@ class Item
|
|||
$item['inform'] = trim($item['inform'] ?? '');
|
||||
$item['file'] = trim($item['file'] ?? '');
|
||||
|
||||
// Communities aren't working with the Diaspora protoccol
|
||||
if (($uid != 0) && ($item['network'] == Protocol::DIASPORA)) {
|
||||
$user = User::getById($uid, ['account-type']);
|
||||
if ($user['account-type'] == Contact::TYPE_COMMUNITY) {
|
||||
Logger::info('Community posts are not supported via Diaspora');
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
// Items cannot be stored before they happen ...
|
||||
if ($item['created'] > DateTimeFormat::utcNow()) {
|
||||
$item['created'] = DateTimeFormat::utcNow();
|
||||
|
|
|
@ -93,6 +93,12 @@ class Receive extends BaseModule
|
|||
|
||||
$importer = User::getByGuid($this->parameters['guid']);
|
||||
|
||||
if ($importer['account-type'] == User::ACCOUNT_TYPE_COMMUNITY) {
|
||||
// Communities aren't working with the Diaspora protoccol
|
||||
// We throw an "accepted" here, so that the sender doesn't repeat the delivery
|
||||
throw new HTTPException\AcceptedException();
|
||||
}
|
||||
|
||||
$msg = $this->decodePost(false, $importer['prvkey'] ?? '');
|
||||
|
||||
$this->logger->info('Diaspora: Dispatching.');
|
||||
|
|
|
@ -858,10 +858,6 @@ class Diaspora
|
|||
} elseif (($contact["rel"] == Contact::SHARING) || ($contact["rel"] == Contact::FRIEND)) {
|
||||
// Yes, then it is fine.
|
||||
return true;
|
||||
// Is it a post to a community?
|
||||
} elseif (($contact["rel"] == Contact::FOLLOWER) && ($importer['account-type'] == User::ACCOUNT_TYPE_COMMUNITY)) {
|
||||
// That's good
|
||||
return true;
|
||||
// Is the message a global user or a comment?
|
||||
} elseif (($importer["uid"] == 0) || $is_comment) {
|
||||
// Messages for the global users and comments are always accepted
|
||||
|
@ -3473,9 +3469,8 @@ class Diaspora
|
|||
|
||||
private static function prependParentAuthorMention($body, $profile_url)
|
||||
{
|
||||
$profile = Contact::getByURL($profile_url, false, ['addr', 'name', 'contact-type']);
|
||||
$profile = Contact::getByURL($profile_url, false, ['addr', 'name']);
|
||||
if (!empty($profile['addr'])
|
||||
&& $profile['contact-type'] != Contact::TYPE_COMMUNITY
|
||||
&& !strstr($body, $profile['addr'])
|
||||
&& !strstr($body, $profile_url)
|
||||
) {
|
||||
|
|
|
@ -153,7 +153,7 @@ class Notifier
|
|||
}
|
||||
|
||||
// Should the post be transmitted to Diaspora?
|
||||
$diaspora_delivery = true;
|
||||
$diaspora_delivery = ($owner['account-type'] != User::ACCOUNT_TYPE_COMMUNITY);
|
||||
|
||||
// If this is a public conversation, notify the feed hub
|
||||
$public_message = true;
|
||||
|
|
Loading…
Reference in a new issue