X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FCore%2FSession.php;h=c4fbb3f8c6d043b9764a0ef2623c64a92e2752d9;hb=3545e9cfa806dc747af3c45461242c81bf999b6f;hp=0557ce81b7554ad4882977b765c32c9cc3fa540e;hpb=00756737b54e00dc5dc3c74ebc5c3e92a5dd97ff;p=friendica.git diff --git a/src/Core/Session.php b/src/Core/Session.php index 0557ce81b7..c4fbb3f8c6 100644 --- a/src/Core/Session.php +++ b/src/Core/Session.php @@ -1,72 +1,92 @@ . + * */ + namespace Friendica\Core; -use Friendica\BaseObject; -use Friendica\Core\Session\ISession; use Friendica\Database\DBA; +use Friendica\DI; use Friendica\Model\Contact; use Friendica\Util\Strings; /** * High-level Session service class - * - * @author Hypolite Petovan */ -class Session extends BaseObject +class Session { public static $exists = false; public static $expire = 180000; public static function exists($name) { - return self::getClass(ISession::class)->exists($name); + return DI::session()->exists($name); } public static function get($name, $defaults = null) { - return self::getClass(ISession::class)->get($name, $defaults); + return DI::session()->get($name, $defaults); } public static function set($name, $value) { - self::getClass(ISession::class)->set($name, $value); + DI::session()->set($name, $value); } public static function setMultiple(array $values) { - self::getClass(ISession::class)->setMultiple($values); + DI::session()->setMultiple($values); } public static function remove($name) { - self::getClass(ISession::class)->remove($name); + DI::session()->remove($name); } public static function clear() { - self::getClass(ISession::class)->clear(); + DI::session()->clear(); } /** - * 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) { - /** @var ISession $session */ - $session = self::getClass(ISession::class); + $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; } /** @@ -77,8 +97,7 @@ class Session extends BaseObject */ public static function getUserIDForVisitorContactID($cid) { - /** @var ISession $session */ - $session = self::getClass(ISession::class); + $session = DI::session(); if (empty($session->get('remote'))) { return false; @@ -94,14 +113,13 @@ class Session extends BaseObject */ public static function setVisitorsContacts() { - /** @var ISession $session */ - $session = self::getClass(ISession::class); + $session = DI::session(); $session->set('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; } @@ -117,8 +135,7 @@ class Session extends BaseObject */ public static function isAuthenticated() { - /** @var ISession $session */ - $session = self::getClass(ISession::class); + $session = DI::session(); return $session->get('authenticated', false); }