X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModule%2FFollowConfirm.php;h=733ffb33d932c263ae040a37317c47008ff98a2a;hb=c58dd5b471f9d2712893137308afa8436a19bd2f;hp=1921e748a8161dddb51ff33edb702935506ff5f8;hpb=7c62a4e02b0a76c0a99ae49ee9a977c6a19a10e7;p=friendica.git diff --git a/src/Module/FollowConfirm.php b/src/Module/FollowConfirm.php index 1921e748a8..733ffb33d9 100644 --- a/src/Module/FollowConfirm.php +++ b/src/Module/FollowConfirm.php @@ -1,97 +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\Model\User; -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); + DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.')); 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::info('Confirming follower', ['cid' => $cid]); - - $contact = DBA::selectFirst('contact', [], ['id' => $cid, 'uid' => $uid]); - if (!DBA::isResult($contact)) { - Logger::warning('Contact not found in DB.', ['cid' => $cid]); - notice(L10n::t('Contact not found.') . EOL); - return; - } + $intro_id = intval($_POST['intro_id'] ?? 0); + $duplex = intval($_POST['duplex'] ?? 0); + $hidden = intval($_POST['hidden'] ?? 0); - $relation = $contact['rel']; - $new_relation = $contact['rel']; - $writable = $contact['writable']; - - 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 = User::getById($uid); - $contact = Contact::getById($cid); - $ret = Diaspora::sendShare($user, $contact); - Logger::info('share returns', ['return' => $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); } }