From 14d4132ad02334bcc22e503290cada91f3d67967 Mon Sep 17 00:00:00 2001 From: Michael Date: Sun, 19 May 2019 08:54:26 +0000 Subject: [PATCH 1/2] Fixed contact suggestion --- mod/fsuggest.php | 62 +++++++++++++++++------------------------------- 1 file changed, 22 insertions(+), 40 deletions(-) diff --git a/mod/fsuggest.php b/mod/fsuggest.php index 58bb11670..e84a8bd54 100644 --- a/mod/fsuggest.php +++ b/mod/fsuggest.php @@ -13,7 +13,7 @@ use Friendica\Util\Strings; function fsuggest_post(App $a) { - if (! local_user()) { + if (!local_user()) { return; } @@ -22,53 +22,35 @@ function fsuggest_post(App $a) } $contact_id = intval($a->argv[1]); + if (empty($contact_id)) { + return; + } - $contact = DBA::selectFirst('contact', [], ['id' => $contact_id, 'uid' => local_user()]); - if (! DBA::isResult($contact)) { + $contact = DBA::selectFirst('contact', ['name', 'url', 'request', 'photo'], ['id' => $contact_id, 'uid' => local_user()]); + if (!DBA::isResult($contact)) { notice(L10n::t('Contact not found.') . EOL); return; } - $new_contact = intval($_POST['suggest']); - - $hash = Strings::getRandomHex(); - $note = Strings::escapeHtml(trim(defaults($_POST, 'note', ''))); - if ($new_contact) { - $r = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1", - intval($new_contact), - intval(local_user()) - ); - if (DBA::isResult($r)) { - q("INSERT INTO `fsuggest` ( `uid`,`cid`,`name`,`url`,`request`,`photo`,`note`,`created`) - VALUES ( %d, %d, '%s','%s','%s','%s','%s','%s')", - intval(local_user()), - intval($contact_id), - DBA::escape($contact['name']), - DBA::escape($contact['url']), - DBA::escape($contact['request']), - DBA::escape($contact['photo']), - DBA::escape($hash), - DBA::escape(DateTimeFormat::utcNow()) - ); - $r = q("SELECT `id` FROM `fsuggest` WHERE `note` = '%s' AND `uid` = %d LIMIT 1", - DBA::escape($hash), - intval(local_user()) - ); - if (DBA::isResult($r)) { - $fsuggest_id = $contact['id']; - q("UPDATE `fsuggest` SET `note` = '%s' WHERE `id` = %d AND `uid` = %d", - DBA::escape($note), - intval($fsuggest_id), - intval(local_user()) - ); - Worker::add(PRIORITY_HIGH, 'Notifier', 'suggest', $fsuggest_id); - } - - info(L10n::t('Friend suggestion sent.') . EOL); - } + $new_contact = intval($_POST['suggest']); + if (empty($new_contact)) { + return; } + + if (!DBA::exists('contact', ['id' => $new_contact])) { + return; + } + + $fields = ['uid' => local_user(),'cid' => $contact_id, 'name' => $contact['name'], + 'url' => $contact['url'], 'request' => $contact['request'], + 'photo' => $contact['photo'], 'note' => $note, 'created' => DateTimeFormat::utcNow()]; + DBA::insert('fsuggest', $fields); + + Worker::add(PRIORITY_HIGH, 'Notifier', 'suggest', DBA::lastInsertId()); + + info(L10n::t('Friend suggestion sent.') . EOL); } function fsuggest_content(App $a) From a6cf036db26f9a7f399f7440c574c12d03821fa7 Mon Sep 17 00:00:00 2001 From: Michael Date: Sun, 19 May 2019 17:59:37 +0000 Subject: [PATCH 2/2] Sending contact suggestions does work again --- mod/fsuggest.php | 27 +++++++++++++++------------ src/Worker/Delivery.php | 2 +- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/mod/fsuggest.php b/mod/fsuggest.php index e84a8bd54..2cede5685 100644 --- a/mod/fsuggest.php +++ b/mod/fsuggest.php @@ -26,26 +26,29 @@ function fsuggest_post(App $a) return; } - $contact = DBA::selectFirst('contact', ['name', 'url', 'request', 'photo'], ['id' => $contact_id, 'uid' => local_user()]); - if (!DBA::isResult($contact)) { + // We do query the "uid" as well to ensure that it is our contact + if (!DBA::exists('contact', ['id' => $contact_id, 'uid' => local_user()])) { notice(L10n::t('Contact not found.') . EOL); return; } + $suggest_contact_id = intval($_POST['suggest']); + if (empty($suggest_contact_id)) { + return; + } + + // We do query the "uid" as well to ensure that it is our contact + $contact = DBA::selectFirst('contact', ['name', 'url', 'request', 'avatar'], ['id' => $suggest_contact_id, 'uid' => local_user()]); + if (!DBA::isResult($contact)) { + notice(L10n::t('Suggested contact not found.') . EOL); + return; + } + $note = Strings::escapeHtml(trim(defaults($_POST, 'note', ''))); - $new_contact = intval($_POST['suggest']); - if (empty($new_contact)) { - return; - } - - if (!DBA::exists('contact', ['id' => $new_contact])) { - return; - } - $fields = ['uid' => local_user(),'cid' => $contact_id, 'name' => $contact['name'], 'url' => $contact['url'], 'request' => $contact['request'], - 'photo' => $contact['photo'], 'note' => $note, 'created' => DateTimeFormat::utcNow()]; + 'photo' => $contact['avatar'], 'note' => $note, 'created' => DateTimeFormat::utcNow()]; DBA::insert('fsuggest', $fields); Worker::add(PRIORITY_HIGH, 'Notifier', 'suggest', DBA::lastInsertId()); diff --git a/src/Worker/Delivery.php b/src/Worker/Delivery.php index 921662a11..904e9904e 100644 --- a/src/Worker/Delivery.php +++ b/src/Worker/Delivery.php @@ -319,7 +319,7 @@ class Delivery extends BaseObject $deliver_status = DFRN::deliver($owner, $contact, $atom, false, true); } - Logger::log('Delivery to ' . $contact['url'] . ' with guid ' . defaults($target_item, 'guid', $target_item['id']) . ' returns ' . $deliver_status); + Logger::info('DFRN Delivery', ['cmd' => $cmd, 'url' => $contact['url'], 'guid' => defaults($target_item, 'guid', $target_item['id']), 'return' => $deliver_status]); if ($deliver_status < 0) { Logger::info('Delivery failed: defer message', ['id' => defaults($target_item, 'guid', $target_item['id'])]);