X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModule%2FFollowConfirm.php;h=733ffb33d932c263ae040a37317c47008ff98a2a;hb=55ff23c6c3491c7d182816bd76dfe70511422912;hp=1e632d92a9e0a805f62ff3e6135968a28d0c30e6;hpb=37f9af2f24ef9bb76b8bd95737386bf752b1b689;p=friendica.git diff --git a/src/Module/FollowConfirm.php b/src/Module/FollowConfirm.php index 1e632d92a9..733ffb33d9 100644 --- a/src/Module/FollowConfirm.php +++ b/src/Module/FollowConfirm.php @@ -1,93 +1,53 @@ . + * + */ + namespace Friendica\Module; -use Friendica\App; use Friendica\BaseModule; -use Friendica\Core\L10n; -use Friendica\Core\Logger; -use Friendica\Core\Protocol; -use Friendica\Database\DBA; +use Friendica\DI; use Friendica\Model\Contact; -use Friendica\Protocol\Diaspora; -use Friendica\Protocol\ActivityPub; -use Friendica\Util\DateTimeFormat; +/** + * Process follow request confirmations + */ class FollowConfirm extends BaseModule { - public static function post() + protected function post(array $request = []) { - $a = self::getApp(); - - $uid = local_user(); + parent::post($request); + $uid = DI::userSession()->getLocalUserId(); if (!$uid) { - notice(L10n::t('Permission denied.') . EOL); - return; - } - - $intro_id = intval(defaults($_POST, 'intro_id' , 0)); - $duplex = intval(defaults($_POST, 'duplex' , 0)); - $cid = intval(defaults($_POST, 'contact_id', 0)); - $hidden = intval(defaults($_POST, 'hidden' , 0)); - - if (empty($cid)) { - notice(L10n::t('No given contact.') . EOL); - return; - } - - Logger::log('Confirming follower with contact_id: ' . $cid); - - $contact = DBA::selectFirst('contact', [], ['id' => $cid, 'uid' => $uid]); - if (!DBA::isResult($contact)) { - Logger::log('Contact not found in DB.'); - notice(L10n::t('Contact not found.') . EOL); + DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.')); return; } - $relation = $contact['rel']; - $new_relation = $contact['rel']; - $writable = $contact['writable']; + $intro_id = intval($_POST['intro_id'] ?? 0); + $duplex = intval($_POST['duplex'] ?? 0); + $hidden = intval($_POST['hidden'] ?? 0); - if (!empty($contact['protocol'])) { - $protocol = $contact['protocol']; - } else { - $protocol = $contact['network']; - } - - if ($protocol == Protocol::ACTIVITYPUB) { - ActivityPub\Transmitter::sendContactAccept($contact['url'], $contact['hub-verify'], $uid); - } - - if (in_array($protocol, [Protocol::DIASPORA, Protocol::ACTIVITYPUB])) { - if ($duplex) { - $new_relation = Contact::FRIEND; - } else { - $new_relation = Contact::FOLLOWER; - } - - if ($new_relation != Contact::FOLLOWER) { - $writable = 1; - } - } - - $fields = ['name-date' => DateTimeFormat::utcNow(), - 'uri-date' => DateTimeFormat::utcNow(), - 'blocked' => false, 'pending' => false, 'protocol' => $protocol, - 'writable' => $writable, 'hidden' => $hidden, 'rel' => $new_relation]; - DBA::update('contact', $fields, ['id' => $cid]); - - if ($new_relation == Contact::FRIEND) { - if ($protocol == Protocol::DIASPORA) { - $user = DBA::selectFirst('user', [], ['uid' => $uid]); - $contact = DBA::select('contact', [], ['id' => $cid]); - $ret = Diaspora::sendShare($user, $contact); - Logger::log('share returns: ' . $ret); - } elseif ($protocol == Protocol::ACTIVITYPUB) { - ActivityPub\Transmitter::sendActivity('Follow', $contact['url'], $uid); - } - } + $intro = DI::intro()->selectOneById($intro_id, DI::userSession()->getLocalUserId()); - DBA::delete('intro', ['id' => $intro_id]); + Contact\Introduction::confirm($intro, $duplex, $hidden); + DI::intro()->delete($intro); - $a->internalRedirect('contact/' . intval($cid)); + DI::baseUrl()->redirect('contact/' . $intro->cid); } }