Merge pull request #12055 from nupplaphil/feat/usersess_decorator

Extend `IHandleUserSessions` from `IHandleSessions` and adapt classes
This commit is contained in:
Hypolite Petovan 2022-10-25 07:52:23 -04:00 committed by GitHub
commit 2555596158
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
14 changed files with 164 additions and 138 deletions

View file

@ -26,7 +26,6 @@ use Friendica\App\Arguments;
use Friendica\App\BaseURL; use Friendica\App\BaseURL;
use Friendica\Capabilities\ICanCreateResponses; use Friendica\Capabilities\ICanCreateResponses;
use Friendica\Core\Config\Factory\Config; use Friendica\Core\Config\Factory\Config;
use Friendica\Core\Session\Capability\IHandleSessions;
use Friendica\Core\Session\Capability\IHandleUserSessions; use Friendica\Core\Session\Capability\IHandleUserSessions;
use Friendica\Module\Maintenance; use Friendica\Module\Maintenance;
use Friendica\Security\Authentication; use Friendica\Security\Authentication;
@ -129,15 +128,10 @@ class App
*/ */
private $pConfig; private $pConfig;
/**
* @var IHandleSessions
*/
private $session;
/** /**
* @var IHandleUserSessions * @var IHandleUserSessions
*/ */
private $userSession; private $session;
/** /**
* Set the user ID * Set the user ID
@ -163,7 +157,7 @@ class App
public function isLoggedIn(): bool public function isLoggedIn(): bool
{ {
return $this->userSession->getLocalUserId() && $this->user_id && ($this->user_id == $this->userSession->getLocalUserId()); return $this->session->getLocalUserId() && $this->user_id && ($this->user_id == $this->session->getLocalUserId());
} }
/** /**
@ -177,7 +171,7 @@ class App
$adminlist = explode(',', str_replace(' ', '', $admin_email)); $adminlist = explode(',', str_replace(' ', '', $admin_email));
return $this->userSession->getLocalUserId() && $admin_email && $this->database->exists('user', ['uid' => $this->getLoggedInUserId(), 'email' => $adminlist]); return $this->session->getLocalUserId() && $admin_email && $this->database->exists('user', ['uid' => $this->getLoggedInUserId(), 'email' => $adminlist]);
} }
/** /**
@ -340,9 +334,9 @@ class App
* @param L10n $l10n The translator instance * @param L10n $l10n The translator instance
* @param App\Arguments $args The Friendica Arguments of the call * @param App\Arguments $args The Friendica Arguments of the call
* @param IManagePersonalConfigValues $pConfig Personal configuration * @param IManagePersonalConfigValues $pConfig Personal configuration
* @param IHandleSessions $session The Session handler * @param IHandleUserSessions $session The (User)Session handler
*/ */
public function __construct(Database $database, IManageConfigValues $config, App\Mode $mode, BaseURL $baseURL, LoggerInterface $logger, Profiler $profiler, L10n $l10n, Arguments $args, IManagePersonalConfigValues $pConfig, IHandleSessions $session, IHandleUserSessions $userSession) public function __construct(Database $database, IManageConfigValues $config, App\Mode $mode, BaseURL $baseURL, LoggerInterface $logger, Profiler $profiler, L10n $l10n, Arguments $args, IManagePersonalConfigValues $pConfig, IHandleUserSessions $session)
{ {
$this->database = $database; $this->database = $database;
$this->config = $config; $this->config = $config;
@ -354,7 +348,6 @@ class App
$this->args = $args; $this->args = $args;
$this->pConfig = $pConfig; $this->pConfig = $pConfig;
$this->session = $session; $this->session = $session;
$this->userSession = $userSession;
$this->load(); $this->load();
} }
@ -502,11 +495,11 @@ class App
$page_theme = null; $page_theme = null;
// Find the theme that belongs to the user whose stuff we are looking at // Find the theme that belongs to the user whose stuff we are looking at
if (!empty($this->profile_owner) && ($this->profile_owner != $this->userSession->getLocalUserId())) { if (!empty($this->profile_owner) && ($this->profile_owner != $this->session->getLocalUserId())) {
// Allow folks to override user themes and always use their own on their own site. // Allow folks to override user themes and always use their own on their own site.
// This works only if the user is on the same server // This works only if the user is on the same server
$user = $this->database->selectFirst('user', ['theme'], ['uid' => $this->profile_owner]); $user = $this->database->selectFirst('user', ['theme'], ['uid' => $this->profile_owner]);
if ($this->database->isResult($user) && !$this->userSession->getLocalUserId()) { if ($this->database->isResult($user) && !$this->session->getLocalUserId()) {
$page_theme = $user['theme']; $page_theme = $user['theme'];
} }
} }
@ -535,10 +528,10 @@ class App
$page_mobile_theme = null; $page_mobile_theme = null;
// Find the theme that belongs to the user whose stuff we are looking at // Find the theme that belongs to the user whose stuff we are looking at
if (!empty($this->profile_owner) && ($this->profile_owner != $this->userSession->getLocalUserId())) { if (!empty($this->profile_owner) && ($this->profile_owner != $this->session->getLocalUserId())) {
// Allow folks to override user themes and always use their own on their own site. // Allow folks to override user themes and always use their own on their own site.
// This works only if the user is on the same server // This works only if the user is on the same server
if (!$this->userSession->getLocalUserId()) { if (!$this->session->getLocalUserId()) {
$page_mobile_theme = $this->pConfig->get($this->profile_owner, 'system', 'mobile-theme'); $page_mobile_theme = $this->pConfig->get($this->profile_owner, 'system', 'mobile-theme');
} }
} }
@ -635,7 +628,7 @@ class App
} }
// ZRL // ZRL
if (!empty($_GET['zrl']) && $this->mode->isNormal() && !$this->mode->isBackend() && !$this->userSession->getLocalUserId()) { if (!empty($_GET['zrl']) && $this->mode->isNormal() && !$this->mode->isBackend() && !$this->session->getLocalUserId()) {
// Only continue when the given profile link seems valid // Only continue when the given profile link seems valid
// Valid profile links contain a path with "/profile/" and no query parameters // Valid profile links contain a path with "/profile/" and no query parameters
if ((parse_url($_GET['zrl'], PHP_URL_QUERY) == '') && if ((parse_url($_GET['zrl'], PHP_URL_QUERY) == '') &&
@ -743,7 +736,7 @@ class App
$response = $module->run($input); $response = $module->run($input);
$this->profiler->set(microtime(true) - $timestamp, 'content'); $this->profiler->set(microtime(true) - $timestamp, 'content');
if ($response->getHeaderLine(ICanCreateResponses::X_HEADER) === ICanCreateResponses::TYPE_HTML) { if ($response->getHeaderLine(ICanCreateResponses::X_HEADER) === ICanCreateResponses::TYPE_HTML) {
$page->run($this, $this->baseURL, $this->args, $this->mode, $response, $this->l10n, $this->profiler, $this->config, $pconfig, $this->userSession->getLocalUserId()); $page->run($this, $this->baseURL, $this->args, $this->mode, $response, $this->l10n, $this->profiler, $this->config, $pconfig, $this->session->getLocalUserId());
} else { } else {
$page->exit($response); $page->exit($response);
} }

View file

@ -32,7 +32,6 @@ use Friendica\Core\L10n;
use Friendica\Core\PConfig\Capability\IManagePersonalConfigValues; use Friendica\Core\PConfig\Capability\IManagePersonalConfigValues;
use Friendica\Core\Protocol; use Friendica\Core\Protocol;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session\Capability\IHandleSessions;
use Friendica\Core\Session\Capability\IHandleUserSessions; use Friendica\Core\Session\Capability\IHandleUserSessions;
use Friendica\Core\Theme; use Friendica\Core\Theme;
use Friendica\Database\DBA; use Friendica\Database\DBA;
@ -78,12 +77,10 @@ class Conversation
private $page; private $page;
/** @var App\Mode */ /** @var App\Mode */
private $mode; private $mode;
/** @var IHandleSessions */
private $session;
/** @var IHandleUserSessions */ /** @var IHandleUserSessions */
private $userSession; private $session;
public function __construct(LoggerInterface $logger, Profiler $profiler, Activity $activity, L10n $l10n, Item $item, Arguments $args, BaseURL $baseURL, IManageConfigValues $config, IManagePersonalConfigValues $pConfig, App\Page $page, App\Mode $mode, App $app, IHandleSessions $session, IHandleUserSessions $userSession) public function __construct(LoggerInterface $logger, Profiler $profiler, Activity $activity, L10n $l10n, Item $item, Arguments $args, BaseURL $baseURL, IManageConfigValues $config, IManagePersonalConfigValues $pConfig, App\Page $page, App\Mode $mode, App $app, IHandleUserSessions $session)
{ {
$this->activity = $activity; $this->activity = $activity;
$this->item = $item; $this->item = $item;
@ -98,7 +95,6 @@ class Conversation
$this->page = $page; $this->page = $page;
$this->app = $app; $this->app = $app;
$this->session = $session; $this->session = $session;
$this->userSession = $userSession;
} }
/** /**
@ -175,7 +171,7 @@ class Conversation
continue; continue;
} }
if ($this->userSession->getPublicContactId() == $activity['author-id']) { if ($this->session->getPublicContactId() == $activity['author-id']) {
$conv_responses[$mode][$activity['thr-parent-id']]['self'] = 1; $conv_responses[$mode][$activity['thr-parent-id']]['self'] = 1;
} }
@ -300,7 +296,7 @@ class Conversation
$x['bang'] = $x['bang'] ?? ''; $x['bang'] = $x['bang'] ?? '';
$x['visitor'] = $x['visitor'] ?? 'block'; $x['visitor'] = $x['visitor'] ?? 'block';
$x['is_owner'] = $x['is_owner'] ?? true; $x['is_owner'] = $x['is_owner'] ?? true;
$x['profile_uid'] = $x['profile_uid'] ?? $this->userSession->getLocalUserId(); $x['profile_uid'] = $x['profile_uid'] ?? $this->session->getLocalUserId();
$geotag = !empty($x['allow_location']) ? Renderer::replaceMacros(Renderer::getMarkupTemplate('jot_geotag.tpl'), []) : ''; $geotag = !empty($x['allow_location']) ? Renderer::replaceMacros(Renderer::getMarkupTemplate('jot_geotag.tpl'), []) : '';
@ -363,7 +359,7 @@ class Conversation
'$title' => $x['title'] ?? '', '$title' => $x['title'] ?? '',
'$placeholdertitle' => $this->l10n->t('Set title'), '$placeholdertitle' => $this->l10n->t('Set title'),
'$category' => $x['category'] ?? '', '$category' => $x['category'] ?? '',
'$placeholdercategory' => Feature::isEnabled($this->userSession->getLocalUserId(), 'categories') ? $this->l10n->t("Categories \x28comma-separated list\x29") : '', '$placeholdercategory' => Feature::isEnabled($this->session->getLocalUserId(), 'categories') ? $this->l10n->t("Categories \x28comma-separated list\x29") : '',
'$scheduled_at' => Temporal::getDateTimeField( '$scheduled_at' => Temporal::getDateTimeField(
new \DateTime(), new \DateTime(),
new \DateTime('now + 6 months'), new \DateTime('now + 6 months'),
@ -401,7 +397,7 @@ class Conversation
'$browser' => $this->l10n->t('Browser'), '$browser' => $this->l10n->t('Browser'),
'$compose_link_title' => $this->l10n->t('Open Compose page'), '$compose_link_title' => $this->l10n->t('Open Compose page'),
'$always_open_compose' => $this->pConfig->get($this->userSession->getLocalUserId(), 'frio', 'always_open_compose', false), '$always_open_compose' => $this->pConfig->get($this->session->getLocalUserId(), 'frio', 'always_open_compose', false),
]); ]);
@ -440,7 +436,7 @@ class Conversation
$this->page->registerStylesheet(Theme::getPathForFile('js/friendica-tagsinput/friendica-tagsinput.css')); $this->page->registerStylesheet(Theme::getPathForFile('js/friendica-tagsinput/friendica-tagsinput.css'));
$this->page->registerStylesheet(Theme::getPathForFile('js/friendica-tagsinput/friendica-tagsinput-typeahead.css')); $this->page->registerStylesheet(Theme::getPathForFile('js/friendica-tagsinput/friendica-tagsinput-typeahead.css'));
$ssl_state = (bool)$this->userSession->getLocalUserId(); $ssl_state = (bool)$this->session->getLocalUserId();
$live_update_div = ''; $live_update_div = '';
@ -492,11 +488,11 @@ class Conversation
} }
} }
} elseif ($mode === 'notes') { } elseif ($mode === 'notes') {
$items = $this->addChildren($items, false, $order, $this->userSession->getLocalUserId(), $mode); $items = $this->addChildren($items, false, $order, $this->session->getLocalUserId(), $mode);
if (!$update) { if (!$update) {
$live_update_div = '<div id="live-notes"></div>' . "\r\n" $live_update_div = '<div id="live-notes"></div>' . "\r\n"
. "<script> var profile_uid = " . $this->userSession->getLocalUserId() . "<script> var profile_uid = " . $this->session->getLocalUserId()
. "; var netargs = '/?f='; </script>\r\n"; . "; var netargs = '/?f='; </script>\r\n";
} }
} elseif ($mode === 'display') { } elseif ($mode === 'display') {
@ -504,7 +500,7 @@ class Conversation
if (!$update) { if (!$update) {
$live_update_div = '<div id="live-display"></div>' . "\r\n" $live_update_div = '<div id="live-display"></div>' . "\r\n"
. "<script> var profile_uid = " . $this->session->get('uid', 0) . ";" . "<script> var profile_uid = " . ($this->session->getLocalUserId() ?: 0) . ";"
. "</script>"; . "</script>";
} }
} elseif ($mode === 'community') { } elseif ($mode === 'community') {
@ -530,7 +526,7 @@ class Conversation
$live_update_div = '<div id="live-search"></div>' . "\r\n"; $live_update_div = '<div id="live-search"></div>' . "\r\n";
} }
$page_dropping = $this->userSession->getLocalUserId() && $this->userSession->getLocalUserId() == $uid; $page_dropping = $this->session->getLocalUserId() && $this->session->getLocalUserId() == $uid;
if (!$update) { if (!$update) {
$_SESSION['return_path'] = $this->args->getQueryString(); $_SESSION['return_path'] = $this->args->getQueryString();
@ -550,7 +546,7 @@ class Conversation
'announce' => [], 'announce' => [],
]; ];
if ($this->pConfig->get($this->userSession->getLocalUserId(), 'system', 'hide_dislike')) { if ($this->pConfig->get($this->session->getLocalUserId(), 'system', 'hide_dislike')) {
unset($conv_responses['dislike']); unset($conv_responses['dislike']);
} }
@ -568,7 +564,7 @@ class Conversation
$writable = $items[0]['writable'] || ($items[0]['uid'] == 0) && in_array($items[0]['network'], Protocol::FEDERATED); $writable = $items[0]['writable'] || ($items[0]['uid'] == 0) && in_array($items[0]['network'], Protocol::FEDERATED);
} }
if (!$this->userSession->getLocalUserId()) { if (!$this->session->getLocalUserId()) {
$writable = false; $writable = false;
} }
@ -601,7 +597,7 @@ class Conversation
$threadsid++; $threadsid++;
// prevent private email from leaking. // prevent private email from leaking.
if ($item['network'] === Protocol::MAIL && $this->userSession->getLocalUserId() != $item['uid']) { if ($item['network'] === Protocol::MAIL && $this->session->getLocalUserId() != $item['uid']) {
continue; continue;
} }
@ -645,17 +641,17 @@ class Conversation
'announce' => null, 'announce' => null,
]; ];
if ($this->pConfig->get($this->userSession->getLocalUserId(), 'system', 'hide_dislike')) { if ($this->pConfig->get($this->session->getLocalUserId(), 'system', 'hide_dislike')) {
unset($likebuttons['dislike']); unset($likebuttons['dislike']);
} }
$body_html = ItemModel::prepareBody($item, true, $preview); $body_html = ItemModel::prepareBody($item, true, $preview);
[$categories, $folders] = $this->item->determineCategoriesTerms($item, $this->userSession->getLocalUserId()); [$categories, $folders] = $this->item->determineCategoriesTerms($item, $this->session->getLocalUserId());
if (!empty($item['title'])) { if (!empty($item['title'])) {
$title = $item['title']; $title = $item['title'];
} elseif (!empty($item['content-warning']) && $this->pConfig->get($this->userSession->getLocalUserId(), 'system', 'disable_cw', false)) { } elseif (!empty($item['content-warning']) && $this->pConfig->get($this->session->getLocalUserId(), 'system', 'disable_cw', false)) {
$title = ucfirst($item['content-warning']); $title = ucfirst($item['content-warning']);
} else { } else {
$title = ''; $title = '';
@ -749,7 +745,7 @@ class Conversation
$this->builtinActivityPuller($item, $conv_responses); $this->builtinActivityPuller($item, $conv_responses);
// Only add what is visible // Only add what is visible
if ($item['network'] === Protocol::MAIL && $this->userSession->getLocalUserId() != $item['uid']) { if ($item['network'] === Protocol::MAIL && $this->session->getLocalUserId() != $item['uid']) {
continue; continue;
} }
@ -794,11 +790,11 @@ class Conversation
private function getBlocklist(): array private function getBlocklist(): array
{ {
if (!$this->userSession->getLocalUserId()) { if (!$this->session->getLocalUserId()) {
return []; return [];
} }
$str_blocked = str_replace(["\n", "\r"], ",", $this->pConfig->get($this->userSession->getLocalUserId(), 'system', 'blocked')); $str_blocked = str_replace(["\n", "\r"], ",", $this->pConfig->get($this->session->getLocalUserId(), 'system', 'blocked'));
if (empty($str_blocked)) { if (empty($str_blocked)) {
return []; return [];
} }
@ -868,7 +864,7 @@ class Conversation
$row['direction'] = ['direction' => 4, 'title' => $this->l10n->t('You subscribed to one or more tags in this post.')]; $row['direction'] = ['direction' => 4, 'title' => $this->l10n->t('You subscribed to one or more tags in this post.')];
break; break;
case ItemModel::PR_ANNOUNCEMENT: case ItemModel::PR_ANNOUNCEMENT:
if (!empty($row['causer-id']) && $this->pConfig->get($this->userSession->getLocalUserId(), 'system', 'display_resharer')) { if (!empty($row['causer-id']) && $this->pConfig->get($this->session->getLocalUserId(), 'system', 'display_resharer')) {
$row['owner-id'] = $row['causer-id']; $row['owner-id'] = $row['causer-id'];
$row['owner-link'] = $row['causer-link']; $row['owner-link'] = $row['causer-link'];
$row['owner-avatar'] = $row['causer-avatar']; $row['owner-avatar'] = $row['causer-avatar'];
@ -1220,7 +1216,7 @@ class Conversation
$parents[$i]['children'] = $this->sortItemChildren($parents[$i]['children']); $parents[$i]['children'] = $this->sortItemChildren($parents[$i]['children']);
} }
if (!$this->pConfig->get($this->userSession->getLocalUserId(), 'system', 'no_smart_threading', 0)) { if (!$this->pConfig->get($this->session->getLocalUserId(), 'system', 'no_smart_threading', 0)) {
foreach ($parents as $i => $parent) { foreach ($parents as $i => $parent) {
$parents[$i] = $this->smartFlattenConversation($parent); $parents[$i] = $this->smartFlattenConversation($parent);
} }

View file

@ -22,9 +22,9 @@
namespace Friendica\Core\Session\Capability; namespace Friendica\Core\Session\Capability;
/** /**
* Handles user infos based on session infos * This interface handles UserSessions, which is directly extended from the global Session interface
*/ */
interface IHandleUserSessions interface IHandleUserSessions extends IHandleSessions
{ {
/** /**
* Returns the user id of locally logged-in user or false. * Returns the user id of locally logged-in user or false.
@ -88,8 +88,6 @@ interface IHandleUserSessions
/** /**
* Set the session variable that contains the contact IDs for the visitor's contact URL * Set the session variable that contains the contact IDs for the visitor's contact URL
*
* @param string $url Contact URL
*/ */
public function setVisitorsContacts(); public function setVisitorsContacts();
} }

View file

@ -55,10 +55,8 @@ class Session
* @param LoggerInterface $logger * @param LoggerInterface $logger
* @param Profiler $profiler * @param Profiler $profiler
* @param array $server * @param array $server
*
* @return IHandleSessions
*/ */
public function createSession(App\Mode $mode, App\BaseURL $baseURL, IManageConfigValues $config, Database $dba, Cache $cacheFactory, LoggerInterface $logger, Profiler $profiler, array $server = []) public function createSession(App\Mode $mode, App\BaseURL $baseURL, IManageConfigValues $config, Database $dba, Cache $cacheFactory, LoggerInterface $logger, Profiler $profiler, array $server = []): IHandleSessions
{ {
$profiler->startRecording('session'); $profiler->startRecording('session');
$session = null; $session = null;

View file

@ -25,6 +25,9 @@ use Friendica\Core\Session\Capability\IHandleSessions;
use Friendica\Core\Session\Capability\IHandleUserSessions; use Friendica\Core\Session\Capability\IHandleUserSessions;
use Friendica\Model\Contact; use Friendica\Model\Contact;
/**
* This class handles user sessions, which is directly extended from regular session
*/
class UserSession implements IHandleUserSessions class UserSession implements IHandleUserSessions
{ {
/** @var IHandleSessions */ /** @var IHandleSessions */
@ -130,4 +133,52 @@ class UserSession implements IHandleUserSessions
{ {
$this->session->set('submanage', $managed_uid); $this->session->set('submanage', $managed_uid);
} }
/** {@inheritDoc} */
public function start(): IHandleSessions
{
return $this;
}
/** {@inheritDoc} */
public function exists(string $name): bool
{
return $this->session->exists($name);
}
/** {@inheritDoc} */
public function get(string $name, $defaults = null)
{
return $this->session->get($name, $defaults);
}
/** {@inheritDoc} */
public function pop(string $name, $defaults = null)
{
return $this->session->pop($name, $defaults);
}
/** {@inheritDoc} */
public function set(string $name, $value)
{
$this->session->set($name, $value);
}
/** {@inheritDoc} */
public function setMultiple(array $values)
{
$this->session->setMultiple($values);
}
/** {@inheritDoc} */
public function remove(string $name)
{
$this->session->remove($name);
}
/** {@inheritDoc} */
public function clear()
{
$this->session->clear();
}
} }

View file

@ -22,6 +22,7 @@
namespace Friendica; namespace Friendica;
use Dice\Dice; use Dice\Dice;
use Friendica\Core\Session\Capability\IHandleSessions;
use Friendica\Core\Session\Capability\IHandleUserSessions; use Friendica\Core\Session\Capability\IHandleUserSessions;
use Friendica\Navigation\SystemMessages; use Friendica\Navigation\SystemMessages;
use Psr\Log\LoggerInterface; use Psr\Log\LoggerInterface;
@ -212,10 +213,7 @@ abstract class DI
return self::$dice->create(Core\Worker\Repository\Process::class); return self::$dice->create(Core\Worker\Repository\Process::class);
} }
/** public static function session(): IHandleSessions
* @return Core\Session\Capability\IHandleSessions
*/
public static function session()
{ {
return self::$dice->create(Core\Session\Capability\IHandleSessions::class); return self::$dice->create(Core\Session\Capability\IHandleSessions::class);
} }

View file

@ -27,7 +27,7 @@ use Friendica\Core\Config\Capability\IManageConfigValues;
use Friendica\Core\Hook; use Friendica\Core\Hook;
use Friendica\Core\L10n; use Friendica\Core\L10n;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session\Capability\IHandleSessions; use Friendica\Core\Session\Capability\IHandleUserSessions;
use Friendica\DI; use Friendica\DI;
use Friendica\Module\Register; use Friendica\Module\Register;
use Friendica\Module\Response; use Friendica\Module\Response;
@ -46,10 +46,10 @@ class Login extends BaseModule
/** @var IManageConfigValues */ /** @var IManageConfigValues */
private $config; private $config;
/** @var IHandleSessions */ /** @var IHandleUserSessions */
private $session; private $session;
public function __construct(Authentication $auth, IManageConfigValues $config, IHandleSessions $session, L10n $l10n, App\BaseURL $baseUrl, App\Arguments $args, LoggerInterface $logger, Profiler $profiler, Response $response, array $server, array $parameters = []) public function __construct(Authentication $auth, IManageConfigValues $config, IHandleUserSessions $session, L10n $l10n, App\BaseURL $baseUrl, App\Arguments $args, LoggerInterface $logger, Profiler $profiler, Response $response, array $server, array $parameters = [])
{ {
parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters); parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters);
@ -62,7 +62,7 @@ class Login extends BaseModule
{ {
$return_path = $request['return_path'] ?? $this->session->pop('return_path', '') ; $return_path = $request['return_path'] ?? $this->session->pop('return_path', '') ;
if (DI::userSession()->getLocalUserId()) { if ($this->session->getLocalUserId()) {
$this->baseUrl->redirect($return_path); $this->baseUrl->redirect($return_path);
} }

View file

@ -26,7 +26,7 @@ use Friendica\BaseModule;
use Friendica\Core\Cache\Capability\ICanCache; use Friendica\Core\Cache\Capability\ICanCache;
use Friendica\Core\Hook; use Friendica\Core\Hook;
use Friendica\Core\L10n; use Friendica\Core\L10n;
use Friendica\Core\Session\Capability\IHandleSessions; use Friendica\Core\Session\Capability\IHandleUserSessions;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\Profile; use Friendica\Model\Profile;
@ -44,10 +44,10 @@ class Logout extends BaseModule
protected $cache; protected $cache;
/** @var Cookie */ /** @var Cookie */
protected $cookie; protected $cookie;
/** @var IHandleSessions */ /** @var IHandleUserSessions */
protected $session; protected $session;
public function __construct(L10n $l10n, App\BaseURL $baseUrl, App\Arguments $args, LoggerInterface $logger, Profiler $profiler, Response $response, ICanCache $cache, Cookie $cookie, IHandleSessions $session, array $server, array $parameters = []) public function __construct(L10n $l10n, App\BaseURL $baseUrl, App\Arguments $args, LoggerInterface $logger, Profiler $profiler, Response $response, ICanCache $cache, Cookie $cookie, IHandleUserSessions $session, array $server, array $parameters = [])
{ {
parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters); parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters);
@ -63,7 +63,7 @@ class Logout extends BaseModule
protected function rawContent(array $request = []) protected function rawContent(array $request = [])
{ {
$visitor_home = null; $visitor_home = null;
if (DI::userSession()->getRemoteUserId()) { if ($this->session->getRemoteUserId()) {
$visitor_home = Profile::getMyURL(); $visitor_home = Profile::getMyURL();
$this->cache->delete('zrlInit:' . $visitor_home); $this->cache->delete('zrlInit:' . $visitor_home);
} }

View file

@ -25,7 +25,7 @@ use Friendica\App;
use Friendica\BaseModule; use Friendica\BaseModule;
use Friendica\Core\L10n; use Friendica\Core\L10n;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session\Capability\IHandleSessions; use Friendica\Core\Session\Capability\IHandleUserSessions;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\User; use Friendica\Model\User;
use Friendica\Module\Response; use Friendica\Module\Response;
@ -41,14 +41,14 @@ use Psr\Log\LoggerInterface;
*/ */
class Recovery extends BaseModule class Recovery extends BaseModule
{ {
/** @var IHandleSessions */ /** @var IHandleUserSessions */
protected $session; protected $session;
/** @var App */ /** @var App */
protected $app; protected $app;
/** @var Authentication */ /** @var Authentication */
protected $auth; protected $auth;
public function __construct(App $app, L10n $l10n, App\BaseURL $baseUrl, App\Arguments $args, LoggerInterface $logger, Profiler $profiler, Response $response, Authentication $auth, IHandleSessions $session, array $server, array $parameters = []) public function __construct(App $app, L10n $l10n, App\BaseURL $baseUrl, App\Arguments $args, LoggerInterface $logger, Profiler $profiler, Response $response, Authentication $auth, IHandleUserSessions $session, array $server, array $parameters = [])
{ {
parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters); parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters);
@ -59,7 +59,7 @@ class Recovery extends BaseModule
protected function post(array $request = []) protected function post(array $request = [])
{ {
if (!DI::userSession()->getLocalUserId()) { if (!$this->session->getLocalUserId()) {
return; return;
} }
@ -68,10 +68,10 @@ class Recovery extends BaseModule
$recovery_code = $_POST['recovery_code'] ?? ''; $recovery_code = $_POST['recovery_code'] ?? '';
if (RecoveryCode::existsForUser(DI::userSession()->getLocalUserId(), $recovery_code)) { if (RecoveryCode::existsForUser($this->session->getLocalUserId(), $recovery_code)) {
RecoveryCode::markUsedForUser(DI::userSession()->getLocalUserId(), $recovery_code); RecoveryCode::markUsedForUser($this->session->getLocalUserId(), $recovery_code);
$this->session->set('2fa', true); $this->session->set('2fa', true);
DI::sysmsg()->addInfo($this->t('Remaining recovery codes: %d', RecoveryCode::countValidForUser(DI::userSession()->getLocalUserId()))); DI::sysmsg()->addInfo($this->t('Remaining recovery codes: %d', RecoveryCode::countValidForUser($this->session->getLocalUserId())));
$this->auth->setForUser($this->app, User::getById($this->app->getLoggedInUserId()), true, true); $this->auth->setForUser($this->app, User::getById($this->app->getLoggedInUserId()), true, true);
@ -84,7 +84,7 @@ class Recovery extends BaseModule
protected function content(array $request = []): string protected function content(array $request = []): string
{ {
if (!DI::userSession()->getLocalUserId()) { if (!$this->session->getLocalUserId()) {
$this->baseUrl->redirect(); $this->baseUrl->redirect();
} }

View file

@ -25,11 +25,10 @@ use Friendica\App;
use Friendica\BaseModule; use Friendica\BaseModule;
use Friendica\Core\L10n; use Friendica\Core\L10n;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session\Capability\IHandleSessions; use Friendica\Core\Session\Capability\IHandleUserSessions;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\User\Cookie; use Friendica\Model\User\Cookie;
use Friendica\Module\Response; use Friendica\Module\Response;
use Friendica\Network\HTTPException\NotFoundException;
use Friendica\Util\Profiler; use Friendica\Util\Profiler;
use Friendica\Security\TwoFactor; use Friendica\Security\TwoFactor;
use Psr\Log\LoggerInterface; use Psr\Log\LoggerInterface;
@ -43,14 +42,14 @@ class SignOut extends BaseModule
{ {
protected $errors = []; protected $errors = [];
/** @var IHandleSessions */ /** @var IHandleUserSessions */
protected $session; protected $session;
/** @var Cookie */ /** @var Cookie */
protected $cookie; protected $cookie;
/** @var TwoFactor\Repository\TrustedBrowser */ /** @var TwoFactor\Repository\TrustedBrowser */
protected $trustedBrowserRepository; protected $trustedBrowserRepository;
public function __construct(L10n $l10n, App\BaseURL $baseUrl, App\Arguments $args, LoggerInterface $logger, IHandleSessions $session, Cookie $cookie, TwoFactor\Repository\TrustedBrowser $trustedBrowserRepository, Profiler $profiler, Response $response, array $server, array $parameters = []) public function __construct(L10n $l10n, App\BaseURL $baseUrl, App\Arguments $args, LoggerInterface $logger, IHandleUserSessions $session, Cookie $cookie, TwoFactor\Repository\TrustedBrowser $trustedBrowserRepository, Profiler $profiler, Response $response, array $server, array $parameters = [])
{ {
parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters); parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters);
@ -61,7 +60,7 @@ class SignOut extends BaseModule
protected function post(array $request = []) protected function post(array $request = [])
{ {
if (!DI::userSession()->getLocalUserId() || !($this->cookie->get('2fa_cookie_hash'))) { if (!$this->session->getLocalUserId() || !($this->cookie->get('2fa_cookie_hash'))) {
return; return;
} }
@ -80,7 +79,7 @@ class SignOut extends BaseModule
$this->baseUrl->redirect(); $this->baseUrl->redirect();
break; break;
case 'sign_out': case 'sign_out':
$this->trustedBrowserRepository->removeForUser(DI::userSession()->getLocalUserId(), $this->cookie->get('2fa_cookie_hash')); $this->trustedBrowserRepository->removeForUser($this->session->getLocalUserId(), $this->cookie->get('2fa_cookie_hash'));
$this->cookie->clear(); $this->cookie->clear();
$this->session->clear(); $this->session->clear();
@ -95,7 +94,7 @@ class SignOut extends BaseModule
protected function content(array $request = []): string protected function content(array $request = []): string
{ {
if (!DI::userSession()->getLocalUserId() || !($this->cookie->get('2fa_cookie_hash'))) { if (!$this->session->getLocalUserId() || !($this->cookie->get('2fa_cookie_hash'))) {
$this->baseUrl->redirect(); $this->baseUrl->redirect();
} }

View file

@ -25,7 +25,7 @@ use Friendica\App;
use Friendica\BaseModule; use Friendica\BaseModule;
use Friendica\Core\L10n; use Friendica\Core\L10n;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session\Capability\IHandleSessions; use Friendica\Core\Session\Capability\IHandleUserSessions;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\User; use Friendica\Model\User;
use Friendica\Model\User\Cookie; use Friendica\Model\User\Cookie;
@ -51,7 +51,7 @@ class Trust extends BaseModule
protected $app; protected $app;
/** @var Authentication */ /** @var Authentication */
protected $auth; protected $auth;
/** @var IHandleSessions */ /** @var IHandleUserSessions */
protected $session; protected $session;
/** @var Cookie */ /** @var Cookie */
protected $cookie; protected $cookie;
@ -60,7 +60,7 @@ class Trust extends BaseModule
/** @var TwoFactor\Repository\TrustedBrowser */ /** @var TwoFactor\Repository\TrustedBrowser */
protected $trustedBrowserRepository; protected $trustedBrowserRepository;
public function __construct(App $app, Authentication $auth, L10n $l10n, App\BaseURL $baseUrl, App\Arguments $args, LoggerInterface $logger, Profiler $profiler, IHandleSessions $session, Cookie $cookie, TwoFactor\Factory\TrustedBrowser $trustedBrowserFactory, TwoFactor\Repository\TrustedBrowser $trustedBrowserRepositoy, Response $response, array $server, array $parameters = []) public function __construct(App $app, Authentication $auth, L10n $l10n, App\BaseURL $baseUrl, App\Arguments $args, LoggerInterface $logger, Profiler $profiler, IHandleUserSessions $session, Cookie $cookie, TwoFactor\Factory\TrustedBrowser $trustedBrowserFactory, TwoFactor\Repository\TrustedBrowser $trustedBrowserRepositoy, Response $response, array $server, array $parameters = [])
{ {
parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters); parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters);
@ -74,7 +74,7 @@ class Trust extends BaseModule
protected function post(array $request = []) protected function post(array $request = [])
{ {
if (!DI::userSession()->getLocalUserId() || !$this->session->get('2fa')) { if (!$this->session->getLocalUserId() || !$this->session->get('2fa')) {
$this->logger->info('Invalid call', ['request' => $request]); $this->logger->info('Invalid call', ['request' => $request]);
return; return;
} }
@ -87,7 +87,7 @@ class Trust extends BaseModule
switch ($action) { switch ($action) {
case 'trust': case 'trust':
case 'dont_trust': case 'dont_trust':
$trustedBrowser = $this->trustedBrowserFactory->createForUserWithUserAgent(DI::userSession()->getLocalUserId(), $this->server['HTTP_USER_AGENT'], $action === 'trust'); $trustedBrowser = $this->trustedBrowserFactory->createForUserWithUserAgent($this->session->getLocalUserId(), $this->server['HTTP_USER_AGENT'], $action === 'trust');
try { try {
$this->trustedBrowserRepository->save($trustedBrowser); $this->trustedBrowserRepository->save($trustedBrowser);
@ -115,7 +115,7 @@ class Trust extends BaseModule
protected function content(array $request = []): string protected function content(array $request = []): string
{ {
if (!DI::userSession()->getLocalUserId() || !$this->session->get('2fa')) { if (!$this->session->getLocalUserId() || !$this->session->get('2fa')) {
$this->baseUrl->redirect(); $this->baseUrl->redirect();
} }

View file

@ -26,7 +26,6 @@ use Friendica\BaseModule;
use Friendica\Core\L10n; use Friendica\Core\L10n;
use Friendica\Core\PConfig\Capability\IManagePersonalConfigValues; use Friendica\Core\PConfig\Capability\IManagePersonalConfigValues;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session\Capability\IHandleSessions;
use Friendica\Core\Session\Capability\IHandleUserSessions; use Friendica\Core\Session\Capability\IHandleUserSessions;
use Friendica\Module\Response; use Friendica\Module\Response;
use Friendica\Util\Profiler; use Friendica\Util\Profiler;
@ -43,25 +42,22 @@ class Verify extends BaseModule
{ {
protected $errors = []; protected $errors = [];
/** @var IHandleSessions */
protected $session;
/** @var IManagePersonalConfigValues */ /** @var IManagePersonalConfigValues */
protected $pConfig; protected $pConfig;
/** @var IHandleUserSessions */ /** @var IHandleUserSessions */
protected $userSession; protected $session;
public function __construct(L10n $l10n, App\BaseURL $baseUrl, App\Arguments $args, LoggerInterface $logger, Profiler $profiler, Response $response, IManagePersonalConfigValues $pConfig, IHandleSessions $session, IHandleUserSessions $userSession, $server, array $parameters = []) public function __construct(L10n $l10n, App\BaseURL $baseUrl, App\Arguments $args, LoggerInterface $logger, Profiler $profiler, Response $response, IManagePersonalConfigValues $pConfig, IHandleUserSessions $session, $server, array $parameters = [])
{ {
parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters); parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters);
$this->session = $session; $this->session = $session;
$this->pConfig = $pConfig; $this->pConfig = $pConfig;
$this->userSession = $userSession;
} }
protected function post(array $request = []) protected function post(array $request = [])
{ {
if (!$this->userSession->getLocalUserId()) { if (!$this->session->getLocalUserId()) {
return; return;
} }
@ -70,7 +66,7 @@ class Verify extends BaseModule
$code = $request['verify_code'] ?? ''; $code = $request['verify_code'] ?? '';
$valid = (new Google2FA())->verifyKey($this->pConfig->get($this->userSession->getLocalUserId(), '2fa', 'secret'), $code); $valid = (new Google2FA())->verifyKey($this->pConfig->get($this->session->getLocalUserId(), '2fa', 'secret'), $code);
// The same code can't be used twice even if it's valid // The same code can't be used twice even if it's valid
if ($valid && $this->session->get('2fa') !== $code) { if ($valid && $this->session->get('2fa') !== $code) {
@ -85,7 +81,7 @@ class Verify extends BaseModule
protected function content(array $request = []): string protected function content(array $request = []): string
{ {
if (!$this->userSession->getLocalUserId()) { if (!$this->session->getLocalUserId()) {
$this->baseUrl->redirect(); $this->baseUrl->redirect();
} }

View file

@ -29,7 +29,6 @@ use Friendica\Content\Text\BBCode;
use Friendica\Core\L10n; use Friendica\Core\L10n;
use Friendica\Core\PConfig\Capability\IManagePersonalConfigValues; use Friendica\Core\PConfig\Capability\IManagePersonalConfigValues;
use Friendica\Core\Protocol; use Friendica\Core\Protocol;
use Friendica\Core\Session\Capability\IHandleSessions;
use Friendica\Core\Session\Capability\IHandleUserSessions; use Friendica\Core\Session\Capability\IHandleUserSessions;
use Friendica\Database\Database; use Friendica\Database\Database;
use Friendica\Model\Contact; use Friendica\Model\Contact;
@ -54,14 +53,12 @@ class Introduction extends BaseFactory
private $l10n; private $l10n;
/** @var IManagePersonalConfigValues */ /** @var IManagePersonalConfigValues */
private $pConfig; private $pConfig;
/** @var IHandleSessions */
private $session;
/** @var IHandleUserSessions */ /** @var IHandleUserSessions */
private $userSession; private $session;
/** @var string */ /** @var string */
private $nick; private $nick;
public function __construct(LoggerInterface $logger, Database $dba, BaseURL $baseUrl, L10n $l10n, App $app, IManagePersonalConfigValues $pConfig, IHandleSessions $session, IHandleUserSessions $userSession) public function __construct(LoggerInterface $logger, Database $dba, BaseURL $baseUrl, L10n $l10n, App $app, IManagePersonalConfigValues $pConfig, IHandleUserSessions $session)
{ {
parent::__construct($logger); parent::__construct($logger);
@ -70,7 +67,6 @@ class Introduction extends BaseFactory
$this->l10n = $l10n; $this->l10n = $l10n;
$this->pConfig = $pConfig; $this->pConfig = $pConfig;
$this->session = $session; $this->session = $session;
$this->userSession = $userSession;
$this->nick = $app->getLoggedInUserNickname() ?? ''; $this->nick = $app->getLoggedInUserNickname() ?? '';
} }
@ -111,7 +107,7 @@ class Introduction extends BaseFactory
LEFT JOIN `contact` AS `sugggest-contact` ON `intro`.`suggest-cid` = `sugggest-contact`.`id` LEFT JOIN `contact` AS `sugggest-contact` ON `intro`.`suggest-cid` = `sugggest-contact`.`id`
WHERE `intro`.`uid` = ? $sql_extra WHERE `intro`.`uid` = ? $sql_extra
LIMIT ?, ?", LIMIT ?, ?",
$_SESSION['uid'], $this->session->getLocalUserId(),
$start, $start,
$limit $limit
); );
@ -146,7 +142,7 @@ class Introduction extends BaseFactory
'url' => $intro['furl'], 'url' => $intro['furl'],
'zrl' => Contact::magicLink($intro['furl']), 'zrl' => Contact::magicLink($intro['furl']),
'hidden' => $intro['hidden'] == 1, 'hidden' => $intro['hidden'] == 1,
'post_newfriend' => (intval($this->pConfig->get($this->userSession->getLocalUserId(), 'system', 'post_newfriend')) ? '1' : 0), 'post_newfriend' => (intval($this->pConfig->get($this->session->getLocalUserId(), 'system', 'post_newfriend')) ? '1' : 0),
'note' => $intro['note'], 'note' => $intro['note'],
'request' => $intro['frequest'] . '?addr=' . $return_addr]); 'request' => $intro['frequest'] . '?addr=' . $return_addr]);
@ -162,7 +158,7 @@ class Introduction extends BaseFactory
'label' => (($intro['network'] !== Protocol::OSTATUS) ? 'friend_request' : 'follower'), 'label' => (($intro['network'] !== Protocol::OSTATUS) ? 'friend_request' : 'follower'),
'str_type' => (($intro['network'] !== Protocol::OSTATUS) ? $this->l10n->t('Friend/Connect Request') : $this->l10n->t('New Follower')), 'str_type' => (($intro['network'] !== Protocol::OSTATUS) ? $this->l10n->t('Friend/Connect Request') : $this->l10n->t('New Follower')),
'dfrn_id' => $intro['issued-id'], 'dfrn_id' => $intro['issued-id'],
'uid' => $this->session->get('uid'), 'uid' => $this->session->getLocalUserId(),
'intro_id' => $intro['intro_id'], 'intro_id' => $intro['intro_id'],
'contact_id' => $intro['contact-id'], 'contact_id' => $intro['contact-id'],
'photo' => Contact::getPhoto($intro), 'photo' => Contact::getPhoto($intro),
@ -171,7 +167,7 @@ class Introduction extends BaseFactory
'about' => BBCode::convert($intro['about'], false), 'about' => BBCode::convert($intro['about'], false),
'keywords' => $intro['keywords'], 'keywords' => $intro['keywords'],
'hidden' => $intro['hidden'] == 1, 'hidden' => $intro['hidden'] == 1,
'post_newfriend' => (intval($this->pConfig->get($this->userSession->getLocalUserId(), 'system', 'post_newfriend')) ? '1' : 0), 'post_newfriend' => (intval($this->pConfig->get($this->session->getLocalUserId(), 'system', 'post_newfriend')) ? '1' : 0),
'url' => $intro['url'], 'url' => $intro['url'],
'zrl' => Contact::magicLink($intro['url']), 'zrl' => Contact::magicLink($intro['url']),
'addr' => $intro['addr'], 'addr' => $intro['addr'],
@ -182,7 +178,7 @@ class Introduction extends BaseFactory
} }
} }
} catch (Exception $e) { } catch (Exception $e) {
$this->logger->warning('Select failed.', ['uid' => $_SESSION['uid'], 'exception' => $e]); $this->logger->warning('Select failed.', ['uid' => $this->session->getLocalUserId(), 'exception' => $e]);
} }
return $formattedIntroductions; return $formattedIntroductions;

View file

@ -26,7 +26,7 @@ use Friendica\App;
use Friendica\Core\Config\Capability\IManageConfigValues; use Friendica\Core\Config\Capability\IManageConfigValues;
use Friendica\Core\PConfig\Capability\IManagePersonalConfigValues; use Friendica\Core\PConfig\Capability\IManagePersonalConfigValues;
use Friendica\Core\Hook; use Friendica\Core\Hook;
use Friendica\Core\Session\Capability\IHandleSessions; use Friendica\Core\Session\Capability\IHandleUserSessions;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\Database\Database; use Friendica\Database\Database;
use Friendica\Database\DBA; use Friendica\Database\DBA;
@ -59,7 +59,7 @@ class Authentication
private $logger; private $logger;
/** @var User\Cookie */ /** @var User\Cookie */
private $cookie; private $cookie;
/** @var IHandleSessions */ /** @var IHandleUserSessions */
private $session; private $session;
/** @var IManagePersonalConfigValues */ /** @var IManagePersonalConfigValues */
private $pConfig; private $pConfig;
@ -88,11 +88,11 @@ class Authentication
* @param Database $dba * @param Database $dba
* @param LoggerInterface $logger * @param LoggerInterface $logger
* @param User\Cookie $cookie * @param User\Cookie $cookie
* @param IHandleSessions $session * @param IHandleUserSessions $session
* @param IManagePersonalConfigValues $pConfig * @param IManagePersonalConfigValues $pConfig
* @param App\Request $request * @param App\Request $request
*/ */
public function __construct(IManageConfigValues $config, App\Mode $mode, App\BaseURL $baseUrl, L10n $l10n, Database $dba, LoggerInterface $logger, User\Cookie $cookie, IHandleSessions $session, IManagePersonalConfigValues $pConfig, App\Request $request) public function __construct(IManageConfigValues $config, App\Mode $mode, App\BaseURL $baseUrl, L10n $l10n, Database $dba, LoggerInterface $logger, User\Cookie $cookie, IHandleUserSessions $session, IManagePersonalConfigValues $pConfig, App\Request $request)
{ {
$this->config = $config; $this->config = $config;
$this->mode = $mode; $this->mode = $mode;
@ -330,9 +330,10 @@ class Authentication
'my_url' => $this->baseUrl->get() . '/profile/' . $user_record['nickname'], 'my_url' => $this->baseUrl->get() . '/profile/' . $user_record['nickname'],
'my_address' => $user_record['nickname'] . '@' . substr($this->baseUrl->get(), strpos($this->baseUrl->get(), '://') + 3), 'my_address' => $user_record['nickname'] . '@' . substr($this->baseUrl->get(), strpos($this->baseUrl->get(), '://') + 3),
'addr' => $this->remoteAddress, 'addr' => $this->remoteAddress,
'nickname' => $user_record['nickname'],
]); ]);
DI::userSession()->setVisitorsContacts(); $this->session->setVisitorsContacts();
$member_since = strtotime($user_record['register_date']); $member_since = strtotime($user_record['register_date']);
$this->session->set('new_member', time() < ($member_since + (60 * 60 * 24 * 14))); $this->session->set('new_member', time() < ($member_since + (60 * 60 * 24 * 14)));