mirror of
https://github.com/friendica/friendica
synced 2024-11-09 17:02:54 +00:00
Merge pull request #12018 from nupplaphil/feat/session_util
Replace Core\Session functions with DI::session methods
This commit is contained in:
commit
d369f1e1e0
16 changed files with 45 additions and 72 deletions
|
@ -91,7 +91,7 @@ function redir_init(App $a) {
|
|||
// with the local contact. Otherwise the local user would ask the local contact
|
||||
// for authentification everytime he/she is visiting a profile page of the local
|
||||
// contact.
|
||||
if (($host == $remotehost) && (Session::getRemoteContactID(Session::get('visitor_visiting')) == Session::get('visitor_id'))) {
|
||||
if (($host == $remotehost) && (Session::getRemoteContactID(DI::session()->get('visitor_visiting')) == DI::session()->get('visitor_id'))) {
|
||||
// Remote user is already authenticated.
|
||||
redir_check_url($contact_url, $url);
|
||||
$target_url = $url ?: $contact_url;
|
||||
|
|
22
src/App.php
22
src/App.php
|
@ -26,6 +26,7 @@ use Friendica\App\Arguments;
|
|||
use Friendica\App\BaseURL;
|
||||
use Friendica\Capabilities\ICanCreateResponses;
|
||||
use Friendica\Core\Config\Factory\Config;
|
||||
use Friendica\Core\Session\Capability\IHandleSessions;
|
||||
use Friendica\Module\Maintenance;
|
||||
use Friendica\Security\Authentication;
|
||||
use Friendica\Core\Config\ValueObject\Cache;
|
||||
|
@ -127,6 +128,11 @@ class App
|
|||
*/
|
||||
private $pConfig;
|
||||
|
||||
/**
|
||||
* @var IHandleSessions
|
||||
*/
|
||||
private $session;
|
||||
|
||||
/**
|
||||
* Set the user ID
|
||||
*
|
||||
|
@ -328,8 +334,9 @@ class App
|
|||
* @param L10n $l10n The translator instance
|
||||
* @param App\Arguments $args The Friendica Arguments of the call
|
||||
* @param IManagePersonalConfigValues $pConfig Personal configuration
|
||||
* @param IHandleSessions $session The Session handler
|
||||
*/
|
||||
public function __construct(Database $database, IManageConfigValues $config, App\Mode $mode, BaseURL $baseURL, LoggerInterface $logger, Profiler $profiler, L10n $l10n, Arguments $args, IManagePersonalConfigValues $pConfig)
|
||||
public function __construct(Database $database, IManageConfigValues $config, App\Mode $mode, BaseURL $baseURL, LoggerInterface $logger, Profiler $profiler, L10n $l10n, Arguments $args, IManagePersonalConfigValues $pConfig, IHandleSessions $session)
|
||||
{
|
||||
$this->database = $database;
|
||||
$this->config = $config;
|
||||
|
@ -340,6 +347,7 @@ class App
|
|||
$this->l10n = $l10n;
|
||||
$this->args = $args;
|
||||
$this->pConfig = $pConfig;
|
||||
$this->session = $session;
|
||||
|
||||
$this->load();
|
||||
}
|
||||
|
@ -415,7 +423,7 @@ class App
|
|||
}
|
||||
|
||||
// Specific mobile theme override
|
||||
if (($this->mode->isMobile() || $this->mode->isTablet()) && Core\Session::get('show-mobile', true)) {
|
||||
if (($this->mode->isMobile() || $this->mode->isTablet()) && $this->session->get('show-mobile', true)) {
|
||||
$user_mobile_theme = $this->getCurrentMobileTheme();
|
||||
|
||||
// --- means same mobile theme as desktop
|
||||
|
@ -496,7 +504,7 @@ class App
|
|||
}
|
||||
}
|
||||
|
||||
$theme_name = $page_theme ?: Core\Session::get('theme', $system_theme);
|
||||
$theme_name = $page_theme ?: $this->session->get('theme', $system_theme);
|
||||
|
||||
$theme_name = Strings::sanitizeFilePathItem($theme_name);
|
||||
if ($theme_name
|
||||
|
@ -528,7 +536,7 @@ class App
|
|||
}
|
||||
}
|
||||
|
||||
$mobile_theme_name = $page_mobile_theme ?: Core\Session::get('mobile-theme', $system_mobile_theme);
|
||||
$mobile_theme_name = $page_mobile_theme ?: $this->session->get('mobile-theme', $system_mobile_theme);
|
||||
|
||||
$mobile_theme_name = Strings::sanitizeFilePathItem($mobile_theme_name);
|
||||
if ($mobile_theme_name == '---'
|
||||
|
@ -625,9 +633,9 @@ class App
|
|||
// Valid profile links contain a path with "/profile/" and no query parameters
|
||||
if ((parse_url($_GET['zrl'], PHP_URL_QUERY) == '') &&
|
||||
strstr(parse_url($_GET['zrl'], PHP_URL_PATH), '/profile/')) {
|
||||
if (Core\Session::get('visitor_home') != $_GET['zrl']) {
|
||||
Core\Session::set('my_url', $_GET['zrl']);
|
||||
Core\Session::set('authenticated', 0);
|
||||
if ($this->session->get('visitor_home') != $_GET['zrl']) {
|
||||
$this->session->set('my_url', $_GET['zrl']);
|
||||
$this->session->set('authenticated', 0);
|
||||
|
||||
$remote_contact = Contact::getByURL($_GET['zrl'], false, ['subscribe']);
|
||||
if (!empty($remote_contact['subscribe'])) {
|
||||
|
|
|
@ -32,7 +32,6 @@ use Friendica\Core\L10n;
|
|||
use Friendica\Core\PConfig\Capability\IManagePersonalConfigValues;
|
||||
use Friendica\Core\Protocol;
|
||||
use Friendica\Core\Renderer;
|
||||
use Friendica\Core\Session;
|
||||
use Friendica\Core\Theme;
|
||||
use Friendica\Database\DBA;
|
||||
use Friendica\Model\Contact;
|
||||
|
@ -77,8 +76,10 @@ class Conversation
|
|||
private $page;
|
||||
/** @var App\Mode */
|
||||
private $mode;
|
||||
/** @var Session\Capability\IHandleSessions */
|
||||
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)
|
||||
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, Session\Capability\IHandleSessions $session)
|
||||
{
|
||||
$this->activity = $activity;
|
||||
$this->item = $item;
|
||||
|
@ -92,6 +93,7 @@ class Conversation
|
|||
$this->pConfig = $pConfig;
|
||||
$this->page = $page;
|
||||
$this->app = $app;
|
||||
$this->session = $session;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -497,7 +499,7 @@ class Conversation
|
|||
|
||||
if (!$update) {
|
||||
$live_update_div = '<div id="live-display"></div>' . "\r\n"
|
||||
. "<script> var profile_uid = " . Session::get('uid', 0) . ";"
|
||||
. "<script> var profile_uid = " . $this->session->get('uid', 0) . ";"
|
||||
. "</script>";
|
||||
}
|
||||
} elseif ($mode === 'community') {
|
||||
|
|
|
@ -208,7 +208,7 @@ class Nav
|
|||
// "Home" should also take you home from an authenticated remote profile connection
|
||||
$homelink = Profile::getMyURL();
|
||||
if (! $homelink) {
|
||||
$homelink = Session::get('visitor_home', '');
|
||||
$homelink = DI::session()->get('visitor_home', '');
|
||||
}
|
||||
|
||||
if ((DI::args()->getModuleName() != 'home') && (! (local_user()))) {
|
||||
|
@ -276,7 +276,7 @@ class Nav
|
|||
$nav['home'] = ['profile/' . $a->getLoggedInUserNickname(), DI::l10n()->t('Home'), '', DI::l10n()->t('Your posts and conversations')];
|
||||
|
||||
// Don't show notifications for public communities
|
||||
if (Session::get('page_flags', '') != User::PAGE_FLAGS_COMMUNITY) {
|
||||
if (DI::session()->get('page_flags', '') != User::PAGE_FLAGS_COMMUNITY) {
|
||||
$nav['introductions'] = ['notifications/intros', DI::l10n()->t('Introductions'), '', DI::l10n()->t('Friend Requests')];
|
||||
$nav['notifications'] = ['notifications', DI::l10n()->t('Notifications'), '', DI::l10n()->t('Notifications')];
|
||||
$nav['notifications']['all'] = ['notifications/system', DI::l10n()->t('See all notifications'), '', ''];
|
||||
|
|
|
@ -34,41 +34,6 @@ class Session
|
|||
public static $exists = false;
|
||||
public static $expire = 180000;
|
||||
|
||||
public static function exists($name)
|
||||
{
|
||||
return DI::session()->exists($name);
|
||||
}
|
||||
|
||||
public static function get($name, $defaults = null)
|
||||
{
|
||||
return DI::session()->get($name, $defaults);
|
||||
}
|
||||
|
||||
public static function pop($name, $defaults = null)
|
||||
{
|
||||
return DI::session()->pop($name, $defaults);
|
||||
}
|
||||
|
||||
public static function set($name, $value)
|
||||
{
|
||||
DI::session()->set($name, $value);
|
||||
}
|
||||
|
||||
public static function setMultiple(array $values)
|
||||
{
|
||||
DI::session()->setMultiple($values);
|
||||
}
|
||||
|
||||
public static function remove($name)
|
||||
{
|
||||
DI::session()->remove($name);
|
||||
}
|
||||
|
||||
public static function clear()
|
||||
{
|
||||
DI::session()->clear();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the user id of locally logged in user or false.
|
||||
*
|
||||
|
|
|
@ -683,7 +683,7 @@ class Profile
|
|||
*/
|
||||
public static function getMyURL(): string
|
||||
{
|
||||
return Session::get('my_url') ?? '';
|
||||
return DI::session()->get('my_url') ?? '';
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -307,7 +307,7 @@ class Network extends BaseModule
|
|||
|
||||
self::$forumContactId = $this->parameters['contact_id'] ?? 0;
|
||||
|
||||
self::$selectedTab = Session::get('network-tab', DI::pConfig()->get(local_user(), 'network.view', 'selected_tab', ''));
|
||||
self::$selectedTab = DI::session()->get('network-tab', DI::pConfig()->get(local_user(), 'network.view', 'selected_tab', ''));
|
||||
|
||||
if (!empty($get['star'])) {
|
||||
self::$selectedTab = 'star';
|
||||
|
@ -345,7 +345,7 @@ class Network extends BaseModule
|
|||
self::$star = false;
|
||||
}
|
||||
|
||||
Session::set('network-tab', self::$selectedTab);
|
||||
DI::session()->set('network-tab', self::$selectedTab);
|
||||
DI::pConfig()->set(local_user(), 'network.view', 'selected_tab', self::$selectedTab);
|
||||
|
||||
self::$accountTypeString = $get['accounttype'] ?? $this->parameters['accounttype'] ?? '';
|
||||
|
|
|
@ -24,7 +24,6 @@ namespace Friendica\Module;
|
|||
use Friendica\BaseModule;
|
||||
use Friendica\Core\Hook;
|
||||
use Friendica\Core\Renderer;
|
||||
use Friendica\Core\Session;
|
||||
use Friendica\Database\DBA;
|
||||
use Friendica\DI;
|
||||
use Friendica\Model\Notification;
|
||||
|
@ -46,8 +45,8 @@ class Delegation extends BaseModule
|
|||
$uid = local_user();
|
||||
$orig_record = User::getById(DI::app()->getLoggedInUserId());
|
||||
|
||||
if (Session::get('submanage')) {
|
||||
$user = User::getById(Session::get('submanage'));
|
||||
if (DI::session()->get('submanage')) {
|
||||
$user = User::getById(DI::session()->get('submanage'));
|
||||
if (DBA::isResult($user)) {
|
||||
$uid = intval($user['uid']);
|
||||
$orig_record = $user;
|
||||
|
@ -97,12 +96,12 @@ class Delegation extends BaseModule
|
|||
return;
|
||||
}
|
||||
|
||||
Session::clear();
|
||||
DI::session()->clear();
|
||||
|
||||
DI::auth()->setForUser(DI::app(), $user, true, true);
|
||||
|
||||
if ($limited_id) {
|
||||
Session::set('submanage', $original_id);
|
||||
DI::session()->set('submanage', $original_id);
|
||||
}
|
||||
|
||||
$ret = [];
|
||||
|
|
|
@ -139,7 +139,7 @@ class Status extends BaseProfile
|
|||
// Get permissions SQL - if $remote_contact is true, our remote user has been pre-verified and we already have fetched his/her groups
|
||||
$condition = Item::getPermissionsConditionArrayByUserId($profile['uid']);
|
||||
|
||||
$last_updated_array = Session::get('last_updated', []);
|
||||
$last_updated_array = DI::session()->get('last_updated', []);
|
||||
|
||||
if (!empty($category)) {
|
||||
$condition = DBA::mergeConditions($condition, ["`uri-id` IN (SELECT `uri-id` FROM `category-view` WHERE `name` = ? AND `type` = ? AND `uid` = ?)",
|
||||
|
@ -189,7 +189,7 @@ class Status extends BaseProfile
|
|||
// Set a time stamp for this page. We will make use of it when we
|
||||
// search for new items (update routine)
|
||||
$last_updated_array[$last_updated_key] = time();
|
||||
Session::set('last_updated', $last_updated_array);
|
||||
DI::session()->set('last_updated', $last_updated_array);
|
||||
|
||||
if ($is_owner && !DI::config()->get('theme', 'hide_eventlist')) {
|
||||
$o .= ProfileModel::getBirthdays();
|
||||
|
|
|
@ -77,7 +77,7 @@ class Delegation extends BaseSettings
|
|||
$user_id = $args->get(3);
|
||||
|
||||
if ($action === 'add' && $user_id) {
|
||||
if (Session::get('submanage')) {
|
||||
if (DI::session()->get('submanage')) {
|
||||
DI::sysmsg()->addNotice(DI::l10n()->t('Delegated administrators can view but not change delegation permissions.'));
|
||||
DI::baseUrl()->redirect('settings/delegation');
|
||||
}
|
||||
|
@ -99,7 +99,7 @@ class Delegation extends BaseSettings
|
|||
}
|
||||
|
||||
if ($action === 'remove' && $user_id) {
|
||||
if (Session::get('submanage')) {
|
||||
if (DI::session()->get('submanage')) {
|
||||
DI::sysmsg()->addNotice(DI::l10n()->t('Delegated administrators can view but not change delegation permissions.'));
|
||||
DI::baseUrl()->redirect('settings/delegation');
|
||||
}
|
||||
|
|
|
@ -157,7 +157,7 @@ class Display extends BaseSettings
|
|||
}
|
||||
|
||||
$theme_selected = $user['theme'] ?: $default_theme;
|
||||
$mobile_theme_selected = Session::get('mobile-theme', $default_mobile_theme);
|
||||
$mobile_theme_selected = DI::session()->get('mobile-theme', $default_mobile_theme);
|
||||
|
||||
$itemspage_network = intval(DI::pConfig()->get(local_user(), 'system', 'itemspage_network'));
|
||||
$itemspage_network = (($itemspage_network > 0 && $itemspage_network < 101) ? $itemspage_network : DI::config()->get('system', 'itemspage_network'));
|
||||
|
|
|
@ -22,7 +22,6 @@
|
|||
namespace Friendica\Module\Settings\TwoFactor;
|
||||
|
||||
use Friendica\Core\Renderer;
|
||||
use Friendica\Core\Session;
|
||||
use Friendica\DI;
|
||||
use Friendica\Network\HTTPException\FoundException;
|
||||
use Friendica\Security\TwoFactor\Model\AppSpecificPassword;
|
||||
|
@ -64,7 +63,7 @@ class Index extends BaseSettings
|
|||
RecoveryCode::deleteForUser(local_user());
|
||||
DI::pConfig()->delete(local_user(), '2fa', 'secret');
|
||||
DI::pConfig()->delete(local_user(), '2fa', 'verified');
|
||||
Session::remove('2fa');
|
||||
DI::session()->remove('2fa');
|
||||
|
||||
DI::sysmsg()->addInfo(DI::l10n()->t('Two-factor authentication successfully disabled.'));
|
||||
DI::baseUrl()->redirect('settings/2fa');
|
||||
|
|
|
@ -86,7 +86,7 @@ class Verify extends BaseSettings
|
|||
|
||||
if ($valid) {
|
||||
$this->pConfig->set(local_user(), '2fa', 'verified', true);
|
||||
Session::set('2fa', true);
|
||||
DI::session()->set('2fa', true);
|
||||
|
||||
DI::sysmsg()->addInfo($this->t('Two-factor authentication successfully activated.'));
|
||||
|
||||
|
@ -106,7 +106,7 @@ class Verify extends BaseSettings
|
|||
parent::content();
|
||||
|
||||
$company = 'Friendica';
|
||||
$holder = Session::get('my_address');
|
||||
$holder = DI::session()->get('my_address');
|
||||
$secret = $this->pConfig->get(local_user(), '2fa', 'secret');
|
||||
|
||||
$otpauthUrl = (new Google2FA())->getQRCodeUrl($company, $holder, $secret);
|
||||
|
|
|
@ -66,7 +66,7 @@ class Profile extends BaseModule
|
|||
// Get permissions SQL - if $remote_contact is true, our remote user has been pre-verified and we already have fetched his/her groups
|
||||
$sql_extra = Item::getPermissionsSQLByUserId($a->getProfileOwner());
|
||||
|
||||
$last_updated_array = Session::get('last_updated', []);
|
||||
$last_updated_array = DI::session()->get('last_updated', []);
|
||||
|
||||
$last_updated = $last_updated_array[$last_updated_key] ?? 0;
|
||||
|
||||
|
@ -102,7 +102,7 @@ class Profile extends BaseModule
|
|||
// Set a time stamp for this page. We will make use of it when we
|
||||
// search for new items (update routine)
|
||||
$last_updated_array[$last_updated_key] = time();
|
||||
Session::set('last_updated', $last_updated_array);
|
||||
DI::session()->set('last_updated', $last_updated_array);
|
||||
|
||||
if ($is_owner && !$a->getProfileOwner() && !DI::config()->get('theme', 'hide_eventlist')) {
|
||||
$o .= ProfileModel::getBirthdays();
|
||||
|
|
|
@ -217,7 +217,7 @@ class Post
|
|||
$edpost = false;
|
||||
|
||||
if (local_user()) {
|
||||
if (Strings::compareLink(Session::get('my_url'), $item['author-link'])) {
|
||||
if (Strings::compareLink(DI::session()->get('my_url'), $item['author-link'])) {
|
||||
if ($item['event-id'] != 0) {
|
||||
$edpost = ['events/event/' . $item['event-id'], DI::l10n()->t('Edit')];
|
||||
} else {
|
||||
|
@ -434,9 +434,9 @@ class Post
|
|||
}
|
||||
|
||||
// Fetching of Diaspora posts doesn't always work. There are issues with reshares and possibly comments
|
||||
if (!local_user() && ($item['network'] != Protocol::DIASPORA) && !empty(Session::get('remote_comment'))) {
|
||||
if (!local_user() && ($item['network'] != Protocol::DIASPORA) && !empty(DI::session()->get('remote_comment'))) {
|
||||
$remote_comment = [DI::l10n()->t('Comment this item on your system'), DI::l10n()->t('Remote comment'),
|
||||
str_replace('{uri}', urlencode($item['uri']), Session::get('remote_comment'))];
|
||||
str_replace('{uri}', urlencode($item['uri']), DI::session()->get('remote_comment'))];
|
||||
|
||||
// Ensure to either display the remote comment or the local activities
|
||||
$buttons = [];
|
||||
|
@ -507,7 +507,7 @@ class Post
|
|||
'location_html' => $location_html,
|
||||
'indent' => $indent,
|
||||
'shiny' => $shiny,
|
||||
'owner_self' => $item['author-link'] == Session::get('my_url'),
|
||||
'owner_self' => $item['author-link'] == DI::session()->get('my_url'),
|
||||
'owner_url' => $this->getOwnerUrl(),
|
||||
'owner_photo' => DI::baseUrl()->remove(DI::contentItem()->getOwnerAvatar($item)),
|
||||
'owner_name' => $this->getOwnerName(),
|
||||
|
|
|
@ -207,7 +207,7 @@ function frio_remote_nav(App $a, array &$nav_info)
|
|||
// get the homelink from $_SESSION
|
||||
$homelink = Profile::getMyURL();
|
||||
if (!$homelink) {
|
||||
$homelink = Session::get('visitor_home', '');
|
||||
$homelink = DI::session()->get('visitor_home', '');
|
||||
}
|
||||
|
||||
// since $userinfo isn't available for the hook we write it to the nav array
|
||||
|
|
Loading…
Reference in a new issue