Public forums are now posting unlisted
This commit is contained in:
parent
8a9f633ce2
commit
e2b8d5379b
4 changed files with 19 additions and 4 deletions
|
@ -436,8 +436,8 @@ function item_post(App $a) {
|
||||||
$original_contact_id = $contact_id;
|
$original_contact_id = $contact_id;
|
||||||
|
|
||||||
if (!$toplevel_item_id && !empty($forum_contact) && ($private_forum || $only_to_forum)) {
|
if (!$toplevel_item_id && !empty($forum_contact) && ($private_forum || $only_to_forum)) {
|
||||||
// we tagged a forum in a top level post. Now we change the post
|
// we tagged a forum in a top level post. Now we change the post
|
||||||
$private = $private_forum;
|
$private = $private_forum ? Item::PRIVATE : Item::UNLISTED;
|
||||||
|
|
||||||
if ($only_to_forum) {
|
if ($only_to_forum) {
|
||||||
$postopts = '';
|
$postopts = '';
|
||||||
|
|
|
@ -1919,7 +1919,7 @@ class Item
|
||||||
|
|
||||||
// also reset all the privacy bits to the forum default permissions
|
// also reset all the privacy bits to the forum default permissions
|
||||||
|
|
||||||
$private = ($user['allow_cid'] || $user['allow_gid'] || $user['deny_cid'] || $user['deny_gid']) ? self::PRIVATE : self::PUBLIC;
|
$private = ($user['allow_cid'] || $user['allow_gid'] || $user['deny_cid'] || $user['deny_gid']) ? self::PRIVATE : self::UNLISTED;
|
||||||
|
|
||||||
$psid = PermissionSet::getIdFromACL(
|
$psid = PermissionSet::getIdFromACL(
|
||||||
$user['uid'],
|
$user['uid'],
|
||||||
|
|
|
@ -533,6 +533,8 @@ class Transmitter
|
||||||
$actor_profile = APContact::getByURL($item['author-link']);
|
$actor_profile = APContact::getByURL($item['author-link']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$exclusive = false;
|
||||||
|
|
||||||
$terms = Tag::getByURIId($item['uri-id'], [Tag::MENTION, Tag::IMPLICIT_MENTION, Tag::EXCLUSIVE_MENTION]);
|
$terms = Tag::getByURIId($item['uri-id'], [Tag::MENTION, Tag::IMPLICIT_MENTION, Tag::EXCLUSIVE_MENTION]);
|
||||||
|
|
||||||
if ($item['private'] != Item::PRIVATE) {
|
if ($item['private'] != Item::PRIVATE) {
|
||||||
|
@ -557,6 +559,9 @@ class Transmitter
|
||||||
foreach ($terms as $term) {
|
foreach ($terms as $term) {
|
||||||
$profile = APContact::getByURL($term['url'], false);
|
$profile = APContact::getByURL($term['url'], false);
|
||||||
if (!empty($profile)) {
|
if (!empty($profile)) {
|
||||||
|
if ($term['type'] == Tag::EXCLUSIVE_MENTION) {
|
||||||
|
$exclusive = true;
|
||||||
|
}
|
||||||
$data['to'][] = $profile['url'];
|
$data['to'][] = $profile['url'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -612,7 +617,7 @@ class Transmitter
|
||||||
$data['cc'][] = $actor_profile['followers'];
|
$data['cc'][] = $actor_profile['followers'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} elseif (!$exclusive) {
|
||||||
// Public thread parent post always are directed to the followers
|
// Public thread parent post always are directed to the followers
|
||||||
if (($item['private'] != Item::PRIVATE) && !$forum_mode) {
|
if (($item['private'] != Item::PRIVATE) && !$forum_mode) {
|
||||||
$data['cc'][] = $actor_profile['followers'];
|
$data['cc'][] = $actor_profile['followers'];
|
||||||
|
|
|
@ -283,6 +283,16 @@ class Notifier
|
||||||
}
|
}
|
||||||
|
|
||||||
Logger::log('Notify ' . $target_item["guid"] .' via PuSH: ' . ($push_notify ? "Yes":"No"), Logger::DEBUG);
|
Logger::log('Notify ' . $target_item["guid"] .' via PuSH: ' . ($push_notify ? "Yes":"No"), Logger::DEBUG);
|
||||||
|
} elseif ($targets = Tag::getByURIId($target_item['uri-id'], [Tag::EXCLUSIVE_MENTION])) {
|
||||||
|
$followup = true;
|
||||||
|
|
||||||
|
foreach ($targets as $target) {
|
||||||
|
$cid = Contact::getIdForURL($target['url'], $uid, false);
|
||||||
|
if ($cid) {
|
||||||
|
$recipients_followup[] = $cid;
|
||||||
|
Logger::info('Exclusively delivering', ['guid' => $target_item['guid'], 'uri-id' => $target_item['uri-id'], 'url' => $target['url']]);
|
||||||
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$followup = false;
|
$followup = false;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue