X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FCore%2FSession.php;h=e648d4cac025bcff9335ebd6b35d8a8d5138b43a;hb=19d62621d535802a9172749b55cbbe4eab0342f4;hp=d0c8581d31e4a07560b261d77039c6684c4d9454;hpb=03038e7a3bb74bdab497d26b7f829a5c3036d1c2;p=friendica.git diff --git a/src/Core/Session.php b/src/Core/Session.php index d0c8581d31..e648d4cac0 100644 --- a/src/Core/Session.php +++ b/src/Core/Session.php @@ -1,8 +1,24 @@ . + * */ + namespace Friendica\Core; use Friendica\Database\DBA; @@ -12,8 +28,6 @@ use Friendica\Util\Strings; /** * High-level Session service class - * - * @author Hypolite Petovan */ class Session { @@ -51,20 +65,28 @@ class Session } /** - * Returns contact ID for given user ID + * Return the user contact ID of a visitor for the given user ID they are visiting * * @param integer $uid User ID - * @return integer Contact ID of visitor for given user ID + * @return integer */ public static function getRemoteContactID($uid) { $session = DI::session(); - if (empty($session->get('remote')[$uid])) { - return false; + if (!empty($session->get('remote')[$uid])) { + $remote = $session->get('remote')[$uid]; + } else { + $remote = 0; + } + + $local_user = !empty($session->get('authenticated')) ? $session->get('uid') : 0; + + if (empty($remote) && ($local_user != $uid) && !empty($my_address = $session->get('my_address'))) { + $remote = Contact::getIdForURL($my_address, $uid, false); } - return $session->get('remote')[$uid]; + return $remote; } /** @@ -94,16 +116,17 @@ class Session $session = DI::session(); $session->set('remote', []); + $remote = []; $remote_contacts = DBA::select('contact', ['id', 'uid'], ['nurl' => Strings::normaliseLink($session->get('my_url')), 'rel' => [Contact::FOLLOWER, Contact::FRIEND], 'self' => false]); while ($contact = DBA::fetch($remote_contacts)) { - if (($contact['uid'] == 0) || Contact::isBlockedByUser($contact['id'], $contact['uid'])) { + if (($contact['uid'] == 0) || Contact\User::isBlocked($contact['id'], $contact['uid'])) { continue; } - - $session->set('remote', [$contact['uid'] => $contact['id']]); + $remote[$contact['uid']] = $contact['id']; } DBA::close($remote_contacts); + $session->set('remote', $remote); } /**