Store personal copy of public item upon commenting

This commit is contained in:
Michael 2020-07-21 23:26:01 +00:00
parent f6428cf2bc
commit d0ef6f2b08
2 changed files with 11 additions and 1 deletions

View file

@ -136,6 +136,16 @@ function item_post(App $a) {
throw new HTTPException\NotFoundException(DI::l10n()->t('Unable to locate original post.')); throw new HTTPException\NotFoundException(DI::l10n()->t('Unable to locate original post.'));
} }
// When commenting on a public post then store the post for the current user
// This enables interaction like starring and saving into folders
if ($toplevel_item['uid'] == 0) {
$stored = Item::storeForUser($toplevel_item, local_user());
Logger::info('Public item stored for user', ['uri-id' => $toplevel_item['uri-id'], 'uid' => $uid, 'stored' => $stored]);
if ($stored) {
$toplevel_item = Item::selectFirst([], ['id' => $stored]);
}
}
$toplevel_item_id = $toplevel_item['id']; $toplevel_item_id = $toplevel_item['id'];
$parent_user = $toplevel_item['uid']; $parent_user = $toplevel_item['uid'];

View file

@ -2174,7 +2174,7 @@ class Item
* @return integer stored item id * @return integer stored item id
* @throws \Exception * @throws \Exception
*/ */
private static function storeForUser(array $item, int $uid) public static function storeForUser(array $item, int $uid)
{ {
if (self::exists(['uri-id' => $item['uri-id'], 'uid' => $uid])) { if (self::exists(['uri-id' => $item['uri-id'], 'uid' => $uid])) {
Logger::info('Item already exists', ['uri-id' => $item['uri-id'], 'uid' => $uid]); Logger::info('Item already exists', ['uri-id' => $item['uri-id'], 'uid' => $uid]);