Private forums are now working via ActivityPub
This commit is contained in:
parent
cdee2b44db
commit
e394143148
13 changed files with 97 additions and 154 deletions
|
@ -184,7 +184,7 @@ class Transmitter
|
|||
|
||||
// Allow fetching the contact list when the requester is part of the list.
|
||||
if (($owner['page-flags'] == User::PAGE_FLAGS_PRVGROUP) && !empty($requester)) {
|
||||
$show_contacts = DBA::exists('contact', ['nurl' => Strings::normaliseLink($requester), 'rel' => $rel]);
|
||||
$show_contacts = DBA::exists('contact', ['nurl' => Strings::normaliseLink($requester), 'uid' => $owner['uid'], 'blocked' => false]);
|
||||
}
|
||||
|
||||
if (!$show_contacts) {
|
||||
|
@ -1079,20 +1079,6 @@ class Transmitter
|
|||
return false;
|
||||
}
|
||||
|
||||
// In case of a forum post ensure to return the original post if author and forum are on the same machine
|
||||
if (($item['gravity'] == GRAVITY_PARENT) && !empty($item['forum_mode'])) {
|
||||
$author = Contact::getById($item['author-id'], ['nurl']);
|
||||
if (!empty($author['nurl'])) {
|
||||
$self = Contact::selectFirst(['uid'], ['nurl' => $author['nurl'], 'self' => true]);
|
||||
if (!empty($self['uid'])) {
|
||||
$forum_item = Post::selectFirst(Item::DELIVER_FIELDLIST, ['uri-id' => $item['uri-id'], 'uid' => $self['uid']]);
|
||||
if (DBA::isResult($forum_item)) {
|
||||
$item = $forum_item;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (empty($item['uri-id'])) {
|
||||
Logger::warning('Item without uri-id', ['item' => $item]);
|
||||
return false;
|
||||
|
|
|
@ -1557,22 +1557,11 @@ class DFRN
|
|||
|
||||
// was the top-level post for this action written by somebody on this site?
|
||||
// Specifically, the recipient?
|
||||
$parent = Post::selectFirst(['forum_mode', 'wall'],
|
||||
$parent = Post::selectFirst(['wall'],
|
||||
["`uri` = ? AND `uid` = ?" . $sql_extra, $item["thr-parent"], $importer["importer_uid"]]);
|
||||
|
||||
$is_a_remote_action = DBA::isResult($parent);
|
||||
|
||||
/*
|
||||
* Does this have the characteristics of a community or private group action?
|
||||
* If it's an action to a wall post on a community/prvgroup page it's a
|
||||
* valid community action. Also forum_mode makes it valid for sure.
|
||||
* If neither, it's not.
|
||||
*/
|
||||
if ($is_a_remote_action && $community && (!$parent["forum_mode"]) && (!$parent["wall"])) {
|
||||
$is_a_remote_action = false;
|
||||
Logger::notice("not a community action");
|
||||
}
|
||||
|
||||
if ($is_a_remote_action) {
|
||||
return DFRN::REPLY_RC;
|
||||
} else {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue