X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModule%2FItem%2FActivity.php;h=c9d192d249f07458ca66cfe613c0c5126231d0f4;hb=39a5bfc0c0ea3777b63adb57a7d6cb4b40a70e86;hp=e731b05b80043bde995c5050c89ca3d831157169;hpb=bd2ee581d31f014c5e9a5055ebc1cd9958abb5d5;p=friendica.git diff --git a/src/Module/Item/Activity.php b/src/Module/Item/Activity.php index e731b05b80..c9d192d249 100644 --- a/src/Module/Item/Activity.php +++ b/src/Module/Item/Activity.php @@ -1,6 +1,6 @@ isAuthenticated()) { throw new HTTPException\ForbiddenException(); } @@ -48,21 +46,26 @@ class Activity extends BaseModule throw new HTTPException\BadRequestException(); } - $verb = $this->parameters['verb']; - $itemId = $this->parameters['id']; -Logger::info('Blubb-1', ['id' => $itemId, 'verb' => $verb]); + $verb = $this->parameters['verb']; + $itemId = $this->parameters['id']; + $handled = false; + if (in_array($verb, ['announce', 'unannounce'])) { - $item = Post::selectFirst(['network', 'uri-id', 'uid'], ['id' => $itemId]); - Logger::info('Blubb-2', ['id' => $itemId, 'item' => $item]); + $item = Post::selectFirst(['network', 'uri-id'], ['id' => $itemId, 'uid' => [DI::userSession()->getLocalUserId(), 0]]); if ($item['network'] == Protocol::DIASPORA) { - Logger::info('Blubb-3', ['id' => $itemId]); - $id = Diaspora::performReshare($item['uri-id'], $item['uid']); - Logger::info('Blubb-ende', ['id' => $id]); + $quote = Post::selectFirst(['id'], ['quote-uri-id' => $item['uri-id'], 'body' => '', 'origin' => true, 'uid' => DI::userSession()->getLocalUserId()]); + if (!empty($quote['id'])) { + if (!Item::markForDeletionById($quote['id'])) { + throw new HTTPException\BadRequestException(); + } + } else { + Diaspora::performReshare($item['uri-id'], DI::userSession()->getLocalUserId()); + } + $handled = true; } } - Logger::info('Blubb-activity', ['id' => $itemId]); - if (!Item::performActivity($itemId, $verb, local_user())) { + if (!$handled && !Item::performActivity($itemId, $verb, DI::userSession()->getLocalUserId())) { throw new HTTPException\BadRequestException(); }