From: Philipp <admin@philipp.info>
Date: Thu, 20 Oct 2022 19:02:49 +0000 (+0200)
Subject: UserSession class [2] - Refactor mod/ files
X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=bfe68702db90271e4e2c79c4ddefd4567b616989;p=friendica.git

UserSession class [2] - Refactor mod/ files
---

diff --git a/mod/cal.php b/mod/cal.php
index ef2063d0a9..9329aac325 100644
--- a/mod/cal.php
+++ b/mod/cal.php
@@ -42,7 +42,7 @@ use Friendica\Util\Temporal;
 
 function cal_init(App $a)
 {
-	if (DI::config()->get('system', 'block_public') && !Session::isAuthenticated()) {
+	if (DI::config()->get('system', 'block_public') && !DI::userSession()->isAuthenticated()) {
 		throw new HTTPException\ForbiddenException(DI::l10n()->t('Access denied.'));
 	}
 
@@ -112,11 +112,11 @@ function cal_content(App $a)
 	$owner_uid = intval($owner['uid']);
 	$nick = $owner['nickname'];
 
-	$contact_id = Session::getRemoteContactID($owner['uid']);
+	$contact_id = DI::userSession()->getRemoteContactID($owner['uid']);
 
 	$remote_contact = $contact_id && DBA::exists('contact', ['id' => $contact_id, 'uid' => $owner['uid']]);
 
-	$is_owner = Session::getLocalUser() == $owner['uid'];
+	$is_owner = DI::userSession()->getLocalUserId() == $owner['uid'];
 
 	if ($owner['hidewall'] && !$is_owner && !$remote_contact) {
 		DI::sysmsg()->addNotice(DI::l10n()->t('Access to this profile has been restricted.'));
@@ -278,7 +278,7 @@ function cal_content(App $a)
 
 			// If it the own calendar return to the events page
 			// otherwise to the profile calendar page
-			if (Session::getLocalUser() === $owner_uid) {
+			if (DI::userSession()->getLocalUserId() === $owner_uid) {
 				$return_path = "events";
 			} else {
 				$return_path = "cal/" . $nick;
diff --git a/mod/display.php b/mod/display.php
index 1a024c7685..a2bf21867e 100644
--- a/mod/display.php
+++ b/mod/display.php
@@ -46,14 +46,14 @@ function display_init(App $a)
 		(new Objects(DI::l10n(), DI::baseUrl(), DI::args(), DI::logger(), DI::profiler(), DI::apiResponse(), $_SERVER, ['guid' => DI::args()->getArgv()[1] ?? null]))->run();
 	}
 
-	if (DI::config()->get('system', 'block_public') && !Session::isAuthenticated()) {
+	if (DI::config()->get('system', 'block_public') && !DI::userSession()->isAuthenticated()) {
 		return;
 	}
 
 	$nick = ((DI::args()->getArgc() > 1) ? DI::args()->getArgv()[1] : '');
 
 	$item = null;
-	$item_user = Session::getLocalUser();
+	$item_user = DI::userSession()->getLocalUserId();
 
 	$fields = ['uri-id', 'parent-uri-id', 'author-id', 'author-link', 'body', 'uid', 'guid', 'gravity'];
 
@@ -62,18 +62,18 @@ function display_init(App $a)
 		$nick = '';
 
 		// Does the local user have this item?
-		if (Session::getLocalUser()) {
-			$item = Post::selectFirstForUser(Session::getLocalUser(), $fields, ['guid' => DI::args()->getArgv()[1], 'uid' => Session::getLocalUser()]);
+		if (DI::userSession()->getLocalUserId()) {
+			$item = Post::selectFirstForUser(DI::userSession()->getLocalUserId(), $fields, ['guid' => DI::args()->getArgv()[1], 'uid' => DI::userSession()->getLocalUserId()]);
 			if (DBA::isResult($item)) {
 				$nick = $a->getLoggedInUserNickname();
 			}
 		}
 
 		// Is this item private but could be visible to the remove visitor?
-		if (!DBA::isResult($item) && Session::getRemoteUser()) {
+		if (!DBA::isResult($item) && DI::userSession()->getRemoteUserId) {
 			$item = Post::selectFirst($fields, ['guid' => DI::args()->getArgv()[1], 'private' => Item::PRIVATE, 'origin' => true]);
 			if (DBA::isResult($item)) {
-				if (!Contact::isFollower(Session::getRemoteUser(), $item['uid'])) {
+				if (!Contact::isFollower(DI::userSession()->getRemoteUserId, $item['uid'])) {
 					$item = null;
 				} else {
 					$item_user = $item['uid'];
@@ -83,14 +83,14 @@ function display_init(App $a)
 
 		// Is it an item with uid=0?
 		if (!DBA::isResult($item)) {
-			$item = Post::selectFirstForUser(Session::getLocalUser(), $fields, ['guid' => DI::args()->getArgv()[1], 'private' => [Item::PUBLIC, Item::UNLISTED], 'uid' => 0]);
+			$item = Post::selectFirstForUser(DI::userSession()->getLocalUserId(), $fields, ['guid' => DI::args()->getArgv()[1], 'private' => [Item::PUBLIC, Item::UNLISTED], 'uid' => 0]);
 		}
 	} elseif (DI::args()->getArgc() >= 3 && $nick == 'feed-item') {
 		$uri_id = DI::args()->getArgv()[2];
 		if (substr($uri_id, -5) == '.atom') {
 			$uri_id = substr($uri_id, 0, -5);
 		}
-		$item = Post::selectFirstForUser(Session::getLocalUser(), $fields, ['uri-id' => $uri_id, 'private' => [Item::PUBLIC, Item::UNLISTED], 'uid' => 0]);
+		$item = Post::selectFirstForUser(DI::userSession()->getLocalUserId(), $fields, ['uri-id' => $uri_id, 'private' => [Item::PUBLIC, Item::UNLISTED], 'uid' => 0]);
 	}
 
 	if (!DBA::isResult($item)) {
@@ -126,7 +126,7 @@ function display_fetchauthor($item)
 	if (Diaspora::isReshare($item['body'], true)) {
 		$shared = Item::getShareArray($item);
 		if (!empty($shared['profile'])) {
-			$contact = Contact::getByURLForUser($shared['profile'], Session::getLocalUser());
+			$contact = Contact::getByURLForUser($shared['profile'], DI::userSession()->getLocalUserId());
 		}
 	}
 
@@ -139,7 +139,7 @@ function display_fetchauthor($item)
 
 function display_content(App $a, $update = false, $update_uid = 0)
 {
-	if (DI::config()->get('system','block_public') && !Session::isAuthenticated()) {
+	if (DI::config()->get('system','block_public') && !DI::userSession()->isAuthenticated()) {
 		throw new HTTPException\ForbiddenException(DI::l10n()->t('Public access denied.'));
 	}
 
@@ -181,18 +181,18 @@ function display_content(App $a, $update = false, $update_uid = 0)
 		if (DI::args()->getArgc() == 2) {
 			$fields = ['uri-id', 'parent-uri-id', 'uid'];
 
-			if (Session::getLocalUser()) {
-				$condition = ['guid' => DI::args()->getArgv()[1], 'uid' => [0, Session::getLocalUser()]];
-				$item = Post::selectFirstForUser(Session::getLocalUser(), $fields, $condition, ['order' => ['uid' => true]]);
+			if (DI::userSession()->getLocalUserId()) {
+				$condition = ['guid' => DI::args()->getArgv()[1], 'uid' => [0, DI::userSession()->getLocalUserId()]];
+				$item = Post::selectFirstForUser(DI::userSession()->getLocalUserId(), $fields, $condition, ['order' => ['uid' => true]]);
 				if (DBA::isResult($item)) {
 					$uri_id = $item['uri-id'];
 					$parent_uri_id = $item['parent-uri-id'];
 				}
 			}
 
-			if (($parent_uri_id == 0) && Session::getRemoteUser()) {
+			if (($parent_uri_id == 0) && DI::userSession()->getRemoteUserId) {
 				$item = Post::selectFirst($fields, ['guid' => DI::args()->getArgv()[1], 'private' => Item::PRIVATE, 'origin' => true]);
-				if (DBA::isResult($item) && Contact::isFollower(Session::getRemoteUser(), $item['uid'])) {
+				if (DBA::isResult($item) && Contact::isFollower(DI::userSession()->getRemoteUserId, $item['uid'])) {
 					$uri_id = $item['uri-id'];
 					$parent_uri_id = $item['parent-uri-id'];
 				}
@@ -200,7 +200,7 @@ function display_content(App $a, $update = false, $update_uid = 0)
 
 			if ($parent_uri_id == 0) {
 				$condition = ['private' => [Item::PUBLIC, Item::UNLISTED], 'guid' => DI::args()->getArgv()[1], 'uid' => 0];
-				$item = Post::selectFirstForUser(Session::getLocalUser(), $fields, $condition);
+				$item = Post::selectFirstForUser(DI::userSession()->getLocalUserId(), $fields, $condition);
 				if (DBA::isResult($item)) {
 					$uri_id = $item['uri-id'];
 					$parent_uri_id = $item['parent-uri-id'];
@@ -213,9 +213,9 @@ function display_content(App $a, $update = false, $update_uid = 0)
 		throw new HTTPException\NotFoundException(DI::l10n()->t('The requested item doesn\'t exist or has been deleted.'));
 	}
 
-	if (!DI::pConfig()->get(Session::getLocalUser(), 'system', 'detailed_notif')) {
-		DI::notification()->setAllSeenForUser(Session::getLocalUser(), ['parent-uri-id' => $item['parent-uri-id']]);
-		DI::notify()->setAllSeenForUser(Session::getLocalUser(), ['parent-uri-id' => $item['parent-uri-id']]);
+	if (!DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'detailed_notif')) {
+		DI::notification()->setAllSeenForUser(DI::userSession()->getLocalUserId(), ['parent-uri-id' => $item['parent-uri-id']]);
+		DI::notify()->setAllSeenForUser(DI::userSession()->getLocalUserId(), ['parent-uri-id' => $item['parent-uri-id']]);
 	}
 
 	// We are displaying an "alternate" link if that post was public. See issue 2864
@@ -234,17 +234,17 @@ function display_content(App $a, $update = false, $update_uid = 0)
 					'$conversation' => $conversation]);
 
 	$is_remote_contact = false;
-	$item_uid = Session::getLocalUser();
+	$item_uid = DI::userSession()->getLocalUserId();
 	$page_uid = 0;
 
 	$parent = null;
-	if (!Session::getLocalUser() && !empty($parent_uri_id)) {
+	if (!DI::userSession()->getLocalUserId() && !empty($parent_uri_id)) {
 		$parent = Post::selectFirst(['uid'], ['uri-id' => $parent_uri_id, 'wall' => true]);
 	}
 
 	if (DBA::isResult($parent)) {
 		$page_uid = $page_uid ?? 0 ?: $parent['uid'];
-		$is_remote_contact = Session::getRemoteContactID($page_uid);
+		$is_remote_contact = DI::userSession()->getRemoteContactID($page_uid);
 		if ($is_remote_contact) {
 			$item_uid = $parent['uid'];
 		}
@@ -252,11 +252,11 @@ function display_content(App $a, $update = false, $update_uid = 0)
 		$page_uid = $item['uid'];
 	}
 
-	if (!empty($page_uid) && ($page_uid != Session::getLocalUser())) {
+	if (!empty($page_uid) && ($page_uid != DI::userSession()->getLocalUserId())) {
 		$page_user = User::getById($page_uid);
 	}
 
-	$is_owner = Session::getLocalUser() && (in_array($page_uid, [Session::getLocalUser(), 0]));
+	$is_owner = DI::userSession()->getLocalUserId() && (in_array($page_uid, [DI::userSession()->getLocalUserId(), 0]));
 
 	if (!empty($page_user['hidewall']) && !$is_owner && !$is_remote_contact) {
 		throw new HTTPException\ForbiddenException(DI::l10n()->t('Access to this profile has been restricted.'));
@@ -268,8 +268,8 @@ function display_content(App $a, $update = false, $update_uid = 0)
 	}
 	$sql_extra = Item::getPermissionsSQLByUserId($page_uid);
 
-	if (Session::getLocalUser() && (Session::getLocalUser() == $page_uid)) {
-		$condition = ['parent-uri-id' => $parent_uri_id, 'uid' => Session::getLocalUser(), 'unseen' => true];
+	if (DI::userSession()->getLocalUserId() && (DI::userSession()->getLocalUserId() == $page_uid)) {
+		$condition = ['parent-uri-id' => $parent_uri_id, 'uid' => DI::userSession()->getLocalUserId(), 'unseen' => true];
 		$unseen = Post::exists($condition);
 	} else {
 		$unseen = false;
@@ -290,11 +290,11 @@ function display_content(App $a, $update = false, $update_uid = 0)
 	$item['uri-id'] = $item['parent-uri-id'];
 
 	if ($unseen) {
-		$condition = ['parent-uri-id' => $parent_uri_id, 'uid' => Session::getLocalUser(), 'unseen' => true];
+		$condition = ['parent-uri-id' => $parent_uri_id, 'uid' => DI::userSession()->getLocalUserId(), 'unseen' => true];
 		Item::update(['unseen' => false], $condition);
 	}
 
-	if (!$update && Session::getLocalUser()) {
+	if (!$update && DI::userSession()->getLocalUserId()) {
 		$o .= "<script> var netargs = '?uri_id=" . $item['uri-id'] . "'; </script>";
 	}
 
diff --git a/mod/editpost.php b/mod/editpost.php
index 8b25f66be4..0c0002bc56 100644
--- a/mod/editpost.php
+++ b/mod/editpost.php
@@ -35,7 +35,7 @@ function editpost_content(App $a)
 {
 	$o = '';
 
-	if (!Session::getLocalUser()) {
+	if (!DI::userSession()->getLocalUserId()) {
 		DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.'));
 		return;
 	}
@@ -50,14 +50,14 @@ function editpost_content(App $a)
 	$fields = ['allow_cid', 'allow_gid', 'deny_cid', 'deny_gid',
 		'body', 'title', 'uri-id', 'wall', 'post-type', 'guid'];
 
-	$item = Post::selectFirstForUser(Session::getLocalUser(), $fields, ['id' => $post_id, 'uid' => Session::getLocalUser()]);
+	$item = Post::selectFirstForUser(DI::userSession()->getLocalUserId(), $fields, ['id' => $post_id, 'uid' => DI::userSession()->getLocalUserId()]);
 
 	if (!DBA::isResult($item)) {
 		DI::sysmsg()->addNotice(DI::l10n()->t('Item not found'));
 		return;
 	}
 
-	$user = User::getById(Session::getLocalUser());
+	$user = User::getById(DI::userSession()->getLocalUserId());
 
 	$geotag = '';
 
@@ -119,8 +119,8 @@ function editpost_content(App $a)
 		'$jotnets' => $jotnets,
 		'$title' => $item['title'],
 		'$placeholdertitle' => DI::l10n()->t('Set title'),
-		'$category' => Post\Category::getCSVByURIId($item['uri-id'], Session::getLocalUser(), Post\Category::CATEGORY),
-		'$placeholdercategory' => (Feature::isEnabled(Session::getLocalUser(),'categories') ? DI::l10n()->t("Categories \x28comma-separated list\x29") : ''),
+		'$category' => Post\Category::getCSVByURIId($item['uri-id'], DI::userSession()->getLocalUserId(), Post\Category::CATEGORY),
+		'$placeholdercategory' => (Feature::isEnabled(DI::userSession()->getLocalUserId(),'categories') ? DI::l10n()->t("Categories \x28comma-separated list\x29") : ''),
 		'$emtitle' => DI::l10n()->t('Example: bob@example.com, mary@example.com'),
 		'$lockstate' => $lockstate,
 		'$acl' => '', // populate_acl((($group) ? $group_acl : $a->user)),
diff --git a/mod/events.php b/mod/events.php
index ac2a08afc5..5899302cce 100644
--- a/mod/events.php
+++ b/mod/events.php
@@ -47,7 +47,7 @@ use Friendica\Worker\Delivery;
 
 function events_init(App $a)
 {
-	if (!Session::getLocalUser()) {
+	if (!DI::userSession()->getLocalUserId()) {
 		return;
 	}
 
@@ -55,7 +55,7 @@ function events_init(App $a)
 		DI::page()['aside'] = '';
 	}
 
-	$cal_widget = CalendarExport::getHTML(Session::getLocalUser());
+	$cal_widget = CalendarExport::getHTML(DI::userSession()->getLocalUserId());
 
 	DI::page()['aside'] .= $cal_widget;
 
@@ -65,13 +65,13 @@ function events_init(App $a)
 function events_post(App $a)
 {
 	Logger::debug('post', ['request' => $_REQUEST]);
-	if (!Session::getLocalUser()) {
+	if (!DI::userSession()->getLocalUserId()) {
 		return;
 	}
 
 	$event_id = !empty($_POST['event_id']) ? intval($_POST['event_id']) : 0;
 	$cid = !empty($_POST['cid']) ? intval($_POST['cid']) : 0;
-	$uid = Session::getLocalUser();
+	$uid = DI::userSession()->getLocalUserId();
 
 	$start_text  = Strings::escapeHtml($_REQUEST['start_text'] ?? '');
 	$finish_text = Strings::escapeHtml($_REQUEST['finish_text'] ?? '');
@@ -215,7 +215,7 @@ function events_post(App $a)
 
 function events_content(App $a)
 {
-	if (!Session::getLocalUser()) {
+	if (!DI::userSession()->getLocalUserId()) {
 		DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.'));
 		return Login::form();
 	}
@@ -225,11 +225,11 @@ function events_content(App $a)
 	}
 
 	if ((DI::args()->getArgc() > 2) && (DI::args()->getArgv()[1] === 'ignore') && intval(DI::args()->getArgv()[2])) {
-		DBA::update('event', ['ignore' => true], ['id' => DI::args()->getArgv()[2], 'uid' => Session::getLocalUser()]);
+		DBA::update('event', ['ignore' => true], ['id' => DI::args()->getArgv()[2], 'uid' => DI::userSession()->getLocalUserId()]);
 	}
 
 	if ((DI::args()->getArgc() > 2) && (DI::args()->getArgv()[1] === 'unignore') && intval(DI::args()->getArgv()[2])) {
-		DBA::update('event', ['ignore' => false], ['id' => DI::args()->getArgv()[2], 'uid' => Session::getLocalUser()]);
+		DBA::update('event', ['ignore' => false], ['id' => DI::args()->getArgv()[2], 'uid' => DI::userSession()->getLocalUserId()]);
 	}
 
 	if ($a->getThemeInfoValue('events_in_profile')) {
@@ -324,9 +324,9 @@ function events_content(App $a)
 
 		// get events by id or by date
 		if ($event_params['event_id']) {
-			$r = Event::getListById(Session::getLocalUser(), $event_params['event_id']);
+			$r = Event::getListById(DI::userSession()->getLocalUserId(), $event_params['event_id']);
 		} else {
-			$r = Event::getListByDate(Session::getLocalUser(), $event_params);
+			$r = Event::getListByDate(DI::userSession()->getLocalUserId(), $event_params);
 		}
 
 		$links = [];
@@ -397,7 +397,7 @@ function events_content(App $a)
 	}
 
 	if (($mode === 'edit' || $mode === 'copy') && $event_id) {
-		$orig_event = DBA::selectFirst('event', [], ['id' => $event_id, 'uid' => Session::getLocalUser()]);
+		$orig_event = DBA::selectFirst('event', [], ['id' => $event_id, 'uid' => DI::userSession()->getLocalUserId()]);
 	}
 
 	// Passed parameters overrides anything found in the DB
@@ -406,8 +406,8 @@ function events_content(App $a)
 		$share_disabled = '';
 
 		if (empty($orig_event)) {
-			$orig_event = User::getById(Session::getLocalUser(), ['allow_cid', 'allow_gid', 'deny_cid', 'deny_gid']);;
-		} elseif ($orig_event['allow_cid'] !== '<' . Session::getLocalUser() . '>'
+			$orig_event = User::getById(DI::userSession()->getLocalUserId(), ['allow_cid', 'allow_gid', 'deny_cid', 'deny_gid']);;
+		} elseif ($orig_event['allow_cid'] !== '<' . DI::userSession()->getLocalUserId() . '>'
 			|| $orig_event['allow_gid']
 			|| $orig_event['deny_cid']
 			|| $orig_event['deny_gid']) {
@@ -525,11 +525,11 @@ function events_content(App $a)
 
 	// Remove an event from the calendar and its related items
 	if ($mode === 'drop' && $event_id) {
-		$ev = Event::getListById(Session::getLocalUser(), $event_id);
+		$ev = Event::getListById(DI::userSession()->getLocalUserId(), $event_id);
 
 		// Delete only real events (no birthdays)
 		if (DBA::isResult($ev) && $ev[0]['type'] == 'event') {
-			Item::deleteForUser(['id' => $ev[0]['itemid']], Session::getLocalUser());
+			Item::deleteForUser(['id' => $ev[0]['itemid']], DI::userSession()->getLocalUserId());
 		}
 
 		if (Post::exists(['id' => $ev[0]['itemid']])) {
diff --git a/mod/fbrowser.php b/mod/fbrowser.php
index a2457575aa..137d664f3f 100644
--- a/mod/fbrowser.php
+++ b/mod/fbrowser.php
@@ -39,7 +39,7 @@ use Friendica\Util\Strings;
  */
 function fbrowser_content(App $a)
 {
-	if (!Session::getLocalUser()) {
+	if (!DI::userSession()->getLocalUserId()) {
 		System::exit();
 	}
 
@@ -66,7 +66,7 @@ function fbrowser_content(App $a)
 
 			if (DI::args()->getArgc() == 2) {
 				$photos = DBA::toArray(DBA::p("SELECT distinct(`album`) AS `album` FROM `photo` WHERE `uid` = ? AND NOT `photo-type` IN (?, ?)",
-					Session::getLocalUser(),
+					DI::userSession()->getLocalUserId(),
 					Photo::CONTACT_AVATAR,
 					Photo::CONTACT_BANNER
 				));
@@ -85,7 +85,7 @@ function fbrowser_content(App $a)
 					min(`scale`) AS `hiq`, max(`scale`) AS `loq`, ANY_VALUE(`desc`) AS `desc`, ANY_VALUE(`created`) AS `created`
 					FROM `photo` WHERE `uid` = ? $sql_extra AND NOT `photo-type` IN (?, ?)
 					GROUP BY `resource-id` $sql_extra2",
-				Session::getLocalUser(),
+				DI::userSession()->getLocalUserId(),
 				Photo::CONTACT_AVATAR,
 				Photo::CONTACT_BANNER
 			));
@@ -125,7 +125,7 @@ function fbrowser_content(App $a)
 			break;
 		case "file":
 			if (DI::args()->getArgc()==2) {
-				$files = DBA::selectToArray('attach', ['id', 'filename', 'filetype'], ['uid' => Session::getLocalUser()]);
+				$files = DBA::selectToArray('attach', ['id', 'filename', 'filetype'], ['uid' => DI::userSession()->getLocalUserId()]);
 
 				function _map_files2($rr)
 				{
diff --git a/mod/follow.php b/mod/follow.php
index 8e08d7a72c..19e55123ca 100644
--- a/mod/follow.php
+++ b/mod/follow.php
@@ -36,7 +36,7 @@ use Friendica\Util\Strings;
 
 function follow_post(App $a)
 {
-	if (!Session::getLocalUser()) {
+	if (!DI::userSession()->getLocalUserId()) {
 		throw new \Friendica\Network\HTTPException\ForbiddenException(DI::l10n()->t('Access denied.'));
 	}
 
@@ -53,13 +53,13 @@ function follow_content(App $a)
 {
 	$return_path = 'contact';
 
-	if (!Session::getLocalUser()) {
+	if (!DI::userSession()->getLocalUserId()) {
 		DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.'));
 		DI::baseUrl()->redirect($return_path);
 		// NOTREACHED
 	}
 
-	$uid = Session::getLocalUser();
+	$uid = DI::userSession()->getLocalUserId();
 
 	$url = Probe::cleanURI(trim($_REQUEST['url'] ?? ''));
 
@@ -196,7 +196,7 @@ function follow_process(App $a, string $url)
 
 function follow_remote_item($url)
 {
-	$item_id = Item::fetchByLink($url, Session::getLocalUser());
+	$item_id = Item::fetchByLink($url, DI::userSession()->getLocalUserId());
 	if (!$item_id) {
 		// If the user-specific search failed, we search and probe a public post
 		$item_id = Item::fetchByLink($url);
diff --git a/mod/item.php b/mod/item.php
index e36853acc4..0490e43a84 100644
--- a/mod/item.php
+++ b/mod/item.php
@@ -58,11 +58,11 @@ use Friendica\Util\DateTimeFormat;
 use Friendica\Util\ParseUrl;
 
 function item_post(App $a) {
-	if (!Session::isAuthenticated()) {
+	if (!DI::userSession()->isAuthenticated()) {
 		throw new HTTPException\ForbiddenException();
 	}
 
-	$uid = Session::getLocalUser();
+	$uid = DI::userSession()->getLocalUserId();
 
 	if (!empty($_REQUEST['dropitems'])) {
 		$arr_drop = explode(',', $_REQUEST['dropitems']);
@@ -107,7 +107,7 @@ function item_post(App $a) {
 	$toplevel_user_id = null;
 
 	$objecttype = null;
-	$profile_uid = ($_REQUEST['profile_uid'] ?? 0) ?: Session::getLocalUser();
+	$profile_uid = ($_REQUEST['profile_uid'] ?? 0) ?: DI::userSession()->getLocalUserId();
 	$posttype = ($_REQUEST['post_type'] ?? '') ?: Item::PT_ARTICLE;
 
 	if ($parent_item_id || $thr_parent_uri) {
@@ -139,7 +139,7 @@ function item_post(App $a) {
 		// When commenting on a public post then store the post for the current user
 		// This enables interaction like starring and saving into folders
 		if ($toplevel_item['uid'] == 0) {
-			$stored = Item::storeForUserByUriId($toplevel_item['uri-id'], Session::getLocalUser(), ['post-reason' => Item::PR_ACTIVITY]);
+			$stored = Item::storeForUserByUriId($toplevel_item['uri-id'], DI::userSession()->getLocalUserId(), ['post-reason' => Item::PR_ACTIVITY]);
 			Logger::info('Public item stored for user', ['uri-id' => $toplevel_item['uri-id'], 'uid' => $uid, 'stored' => $stored]);
 			if ($stored) {
 				$toplevel_item = Post::selectFirst(Item::ITEM_FIELDLIST, ['id' => $stored]);
@@ -169,16 +169,16 @@ function item_post(App $a) {
 	}
 
 	// Ensure that the user id in a thread always stay the same
-	if (!is_null($toplevel_user_id) && in_array($toplevel_user_id, [Session::getLocalUser(), 0])) {
+	if (!is_null($toplevel_user_id) && in_array($toplevel_user_id, [DI::userSession()->getLocalUserId(), 0])) {
 		$profile_uid = $toplevel_user_id;
 	}
 
 	// Allow commenting if it is an answer to a public post
-	$allow_comment = Session::getLocalUser() && $toplevel_item_id && in_array($toplevel_item['private'], [Item::PUBLIC, Item::UNLISTED]) && in_array($toplevel_item['network'], Protocol::FEDERATED);
+	$allow_comment = DI::userSession()->getLocalUserId() && $toplevel_item_id && in_array($toplevel_item['private'], [Item::PUBLIC, Item::UNLISTED]) && in_array($toplevel_item['network'], Protocol::FEDERATED);
 
 	// Now check that valid personal details have been provided
 	if (!Security::canWriteToUserWall($profile_uid) && !$allow_comment) {
-		Logger::warning('Permission denied.', ['local' => Session::getLocalUser(), 'profile_uid' => $profile_uid, 'toplevel_item_id' => $toplevel_item_id, 'network' => $toplevel_item['network']]);
+		Logger::warning('Permission denied.', ['local' => DI::userSession()->getLocalUserId(), 'profile_uid' => $profile_uid, 'toplevel_item_id' => $toplevel_item_id, 'network' => $toplevel_item['network']]);
 		DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.'));
 		if ($return_path) {
 			DI::baseUrl()->redirect($return_path);
@@ -324,9 +324,9 @@ function item_post(App $a) {
 		$pubmail_enabled = ($_REQUEST['pubmail_enable'] ?? false) && !$private;
 
 		// if using the API, we won't see pubmail_enable - figure out if it should be set
-		if ($api_source && $profile_uid && $profile_uid == Session::getLocalUser() && !$private) {
+		if ($api_source && $profile_uid && $profile_uid == DI::userSession()->getLocalUserId() && !$private) {
 			if (function_exists('imap_open') && !DI::config()->get('system', 'imap_disabled')) {
-				$pubmail_enabled = DBA::exists('mailacct', ["`uid` = ? AND `server` != ? AND `pubmail`", Session::getLocalUser(), '']);
+				$pubmail_enabled = DBA::exists('mailacct', ["`uid` = ? AND `server` != ? AND `pubmail`", DI::userSession()->getLocalUserId(), '']);
 			}
 		}
 
@@ -363,11 +363,11 @@ function item_post(App $a) {
 	$self   = false;
 	$contact_id = 0;
 
-	if (Session::getLocalUser() && ((Session::getLocalUser() == $profile_uid) || $allow_comment)) {
+	if (DI::userSession()->getLocalUserId() && ((DI::userSession()->getLocalUserId() == $profile_uid) || $allow_comment)) {
 		$self = true;
-		$author = DBA::selectFirst('contact', [], ['uid' => Session::getLocalUser(), 'self' => true]);
-	} elseif (!empty(Session::getRemoteContactID($profile_uid))) {
-		$author = DBA::selectFirst('contact', [], ['id' => Session::getRemoteContactID($profile_uid)]);
+		$author = DBA::selectFirst('contact', [], ['uid' => DI::userSession()->getLocalUserId(), 'self' => true]);
+	} elseif (!empty(DI::userSession()->getRemoteContactID($profile_uid))) {
+		$author = DBA::selectFirst('contact', [], ['id' => DI::userSession()->getRemoteContactID($profile_uid)]);
 	}
 
 	if (DBA::isResult($author)) {
@@ -375,7 +375,7 @@ function item_post(App $a) {
 	}
 
 	// get contact info for owner
-	if ($profile_uid == Session::getLocalUser() || $allow_comment) {
+	if ($profile_uid == DI::userSession()->getLocalUserId() || $allow_comment) {
 		$contact_record = $author ?: [];
 	} else {
 		$contact_record = DBA::selectFirst('contact', [], ['uid' => $profile_uid, 'self' => true]) ?: [];
@@ -385,7 +385,7 @@ function item_post(App $a) {
 	if ($posttype != Item::PT_PERSONAL_NOTE) {
 		// Look for any tags and linkify them
 		$item = [
-			'uid'       => Session::getLocalUser() ? Session::getLocalUser() : $profile_uid,
+			'uid'       => DI::userSession()->getLocalUserId() ? DI::userSession()->getLocalUserId() : $profile_uid,
 			'gravity'   => $toplevel_item_id ? Item::GRAVITY_COMMENT : Item::GRAVITY_PARENT,
 			'network'   => $network,
 			'body'      => $body,
@@ -734,7 +734,7 @@ function item_post(App $a) {
 
 	Hook::callAll('post_local_end', $datarray);
 
-	if (strlen($emailcc) && $profile_uid == Session::getLocalUser()) {
+	if (strlen($emailcc) && $profile_uid == DI::userSession()->getLocalUserId()) {
 		$recipients = explode(',', $emailcc);
 		if (count($recipients)) {
 			foreach ($recipients as $recipient) {
@@ -780,7 +780,7 @@ function item_post_return($baseurl, $api_source, $return_path)
 
 function item_content(App $a)
 {
-	if (!Session::isAuthenticated()) {
+	if (!DI::userSession()->isAuthenticated()) {
 		throw new HTTPException\UnauthorizedException();
 	}
 
@@ -794,9 +794,9 @@ function item_content(App $a)
 	switch ($args->get(1)) {
 		case 'drop':
 			if (DI::mode()->isAjax()) {
-				Item::deleteForUser(['id' => $args->get(2)], Session::getLocalUser());
+				Item::deleteForUser(['id' => $args->get(2)], DI::userSession()->getLocalUserId());
 				// ajax return: [<item id>, 0 (no perm) | <owner id>]
-				System::jsonExit([intval($args->get(2)), Session::getLocalUser()]);
+				System::jsonExit([intval($args->get(2)), DI::userSession()->getLocalUserId()]);
 			} else {
 				if (!empty($args->get(3))) {
 					$o = drop_item($args->get(2), $args->get(3));
@@ -807,16 +807,16 @@ function item_content(App $a)
 			break;
 
 		case 'block':
-			$item = Post::selectFirstForUser(Session::getLocalUser(), ['guid', 'author-id', 'parent', 'gravity'], ['id' => $args->get(2)]);
+			$item = Post::selectFirstForUser(DI::userSession()->getLocalUserId(), ['guid', 'author-id', 'parent', 'gravity'], ['id' => $args->get(2)]);
 			if (empty($item['author-id'])) {
 				throw new HTTPException\NotFoundException('Item not found');
 			}
 
-			Contact\User::setBlocked($item['author-id'], Session::getLocalUser(), true);
+			Contact\User::setBlocked($item['author-id'], DI::userSession()->getLocalUserId(), true);
 
 			if (DI::mode()->isAjax()) {
 				// ajax return: [<item id>, 0 (no perm) | <owner id>]
-				System::jsonExit([intval($args->get(2)), Session::getLocalUser()]);
+				System::jsonExit([intval($args->get(2)), DI::userSession()->getLocalUserId()]);
 			} else {
 				item_redirect_after_action($item, $args->get(3));
 			}
@@ -835,7 +835,7 @@ function item_content(App $a)
 function drop_item(int $id, string $return = ''): string
 {
 	// Locate item to be deleted
-	$item = Post::selectFirstForUser(Session::getLocalUser(), ['id', 'uid', 'guid', 'contact-id', 'deleted', 'gravity', 'parent'], ['id' => $id]);
+	$item = Post::selectFirstForUser(DI::userSession()->getLocalUserId(), ['id', 'uid', 'guid', 'contact-id', 'deleted', 'gravity', 'parent'], ['id' => $id]);
 
 	if (!DBA::isResult($item)) {
 		DI::sysmsg()->addNotice(DI::l10n()->t('Item not found.'));
@@ -850,18 +850,18 @@ function drop_item(int $id, string $return = ''): string
 	$contact_id = 0;
 
 	// check if logged in user is either the author or owner of this item
-	if (Session::getRemoteContactID($item['uid']) == $item['contact-id']) {
+	if (DI::userSession()->getRemoteContactID($item['uid']) == $item['contact-id']) {
 		$contact_id = $item['contact-id'];
 	}
 
-	if ((Session::getLocalUser() == $item['uid']) || $contact_id) {
+	if ((DI::userSession()->getLocalUserId() == $item['uid']) || $contact_id) {
 		// delete the item
-		Item::deleteForUser(['id' => $item['id']], Session::getLocalUser());
+		Item::deleteForUser(['id' => $item['id']], DI::userSession()->getLocalUserId());
 
 		item_redirect_after_action($item, $return);
 		//NOTREACHED
 	} else {
-		Logger::warning('Permission denied.', ['local' => Session::getLocalUser(), 'uid' => $item['uid'], 'cid' => $contact_id]);
+		Logger::warning('Permission denied.', ['local' => DI::userSession()->getLocalUserId(), 'uid' => $item['uid'], 'cid' => $contact_id]);
 		DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.'));
 		DI::baseUrl()->redirect('display/' . $item['guid']);
 		//NOTREACHED
@@ -880,7 +880,7 @@ function item_redirect_after_action(array $item, string $returnUrlHex)
 	// Check if delete a comment
 	if ($item['gravity'] == Item::GRAVITY_COMMENT) {
 		if (!empty($item['parent'])) {
-			$parentitem = Post::selectFirstForUser(Session::getLocalUser(), ['guid'], ['id' => $item['parent']]);
+			$parentitem = Post::selectFirstForUser(DI::userSession()->getLocalUserId(), ['guid'], ['id' => $item['parent']]);
 		}
 
 		// Return to parent guid
diff --git a/mod/match.php b/mod/match.php
index 860d60f56c..5b87c6870a 100644
--- a/mod/match.php
+++ b/mod/match.php
@@ -45,7 +45,7 @@ use Friendica\Module\Contact as ModuleContact;
  */
 function match_content(App $a)
 {
-	if (!Session::getLocalUser()) {
+	if (!DI::userSession()->getLocalUserId()) {
 		return '';
 	}
 
@@ -54,7 +54,7 @@ function match_content(App $a)
 
 	$_SESSION['return_path'] = DI::args()->getCommand();
 
-	$profile = Profile::getByUID(Session::getLocalUser());
+	$profile = Profile::getByUID(DI::userSession()->getLocalUserId());
 
 	if (!DBA::isResult($profile)) {
 		return '';
@@ -68,10 +68,10 @@ function match_content(App $a)
 	$tags = trim($profile['pub_keywords'] . ' ' . $profile['prv_keywords']);
 
 	if (DI::mode()->isMobile()) {
-		$limit = DI::pConfig()->get(Session::getLocalUser(), 'system', 'itemspage_mobile_network',
+		$limit = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'itemspage_mobile_network',
 			DI::config()->get('system', 'itemspage_network_mobile'));
 	} else {
-		$limit = DI::pConfig()->get(Session::getLocalUser(), 'system', 'itemspage_network',
+		$limit = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'itemspage_network',
 			DI::config()->get('system', 'itemspage_network'));
 	}
 
@@ -115,12 +115,12 @@ function match_get_contacts($msearch, $entries, $limit)
 		}
 
 		// Already known contact
-		$contact = Contact::getByURL($profile->url, null, ['rel'], Session::getLocalUser());
+		$contact = Contact::getByURL($profile->url, null, ['rel'], DI::userSession()->getLocalUserId());
 		if (!empty($contact) && in_array($contact['rel'], [Contact::FRIEND, Contact::SHARING])) {
 			continue;
 		}
 
-		$contact = Contact::getByURLForUser($profile->url, Session::getLocalUser());
+		$contact = Contact::getByURLForUser($profile->url, DI::userSession()->getLocalUserId());
 		if (!empty($contact)) {
 			$entries[$contact['id']] = ModuleContact::getContactTemplateVars($contact);
 		}
diff --git a/mod/message.php b/mod/message.php
index 8d379f4e9e..9fb8d7cbc9 100644
--- a/mod/message.php
+++ b/mod/message.php
@@ -40,7 +40,7 @@ function message_init(App $a)
 	$tabs = '';
 
 	if (DI::args()->getArgc() > 1 && is_numeric(DI::args()->getArgv()[1])) {
-		$tabs = render_messages(get_messages(Session::getLocalUser(), 0, 5), 'mail_list.tpl');
+		$tabs = render_messages(get_messages(DI::userSession()->getLocalUserId(), 0, 5), 'mail_list.tpl');
 	}
 
 	$new = [
@@ -66,7 +66,7 @@ function message_init(App $a)
 
 function message_post(App $a)
 {
-	if (!Session::getLocalUser()) {
+	if (!DI::userSession()->getLocalUserId()) {
 		DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.'));
 		return;
 	}
@@ -111,7 +111,7 @@ function message_content(App $a)
 	$o = '';
 	Nav::setSelected('messages');
 
-	if (!Session::getLocalUser()) {
+	if (!DI::userSession()->getLocalUserId()) {
 		DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.'));
 		return Login::form();
 	}
@@ -145,28 +145,28 @@ function message_content(App $a)
 
 		$cmd = DI::args()->getArgv()[1];
 		if ($cmd === 'drop') {
-			$message = DBA::selectFirst('mail', ['convid'], ['id' => DI::args()->getArgv()[2], 'uid' => Session::getLocalUser()]);
+			$message = DBA::selectFirst('mail', ['convid'], ['id' => DI::args()->getArgv()[2], 'uid' => DI::userSession()->getLocalUserId()]);
 			if(!DBA::isResult($message)){
 				DI::sysmsg()->addNotice(DI::l10n()->t('Conversation not found.'));
 				DI::baseUrl()->redirect('message');
 			}
 
-			if (!DBA::delete('mail', ['id' => DI::args()->getArgv()[2], 'uid' => Session::getLocalUser()])) {
+			if (!DBA::delete('mail', ['id' => DI::args()->getArgv()[2], 'uid' => DI::userSession()->getLocalUserId()])) {
 				DI::sysmsg()->addNotice(DI::l10n()->t('Message was not deleted.'));
 			}
 
-			$conversation = DBA::selectFirst('mail', ['id'], ['convid' => $message['convid'], 'uid' => Session::getLocalUser()]);
+			$conversation = DBA::selectFirst('mail', ['id'], ['convid' => $message['convid'], 'uid' => DI::userSession()->getLocalUserId()]);
 			if(!DBA::isResult($conversation)){
 				DI::baseUrl()->redirect('message');
 			}
 
 			DI::baseUrl()->redirect('message/' . $conversation['id'] );
 		} else {
-			$parentmail = DBA::selectFirst('mail', ['parent-uri'], ['id' => DI::args()->getArgv()[2], 'uid' => Session::getLocalUser()]);
+			$parentmail = DBA::selectFirst('mail', ['parent-uri'], ['id' => DI::args()->getArgv()[2], 'uid' => DI::userSession()->getLocalUserId()]);
 			if (DBA::isResult($parentmail)) {
 				$parent = $parentmail['parent-uri'];
 
-				if (!DBA::delete('mail', ['parent-uri' => $parent, 'uid' => Session::getLocalUser()])) {
+				if (!DBA::delete('mail', ['parent-uri' => $parent, 'uid' => DI::userSession()->getLocalUserId()])) {
 					DI::sysmsg()->addNotice(DI::l10n()->t('Conversation was not removed.'));
 				}
 			}
@@ -216,11 +216,11 @@ function message_content(App $a)
 
 		$o .= $header;
 
-		$total = DBA::count('mail', ['uid' => Session::getLocalUser()], ['distinct' => true, 'expression' => 'parent-uri']);
+		$total = DBA::count('mail', ['uid' => DI::userSession()->getLocalUserId()], ['distinct' => true, 'expression' => 'parent-uri']);
 
 		$pager = new Pager(DI::l10n(), DI::args()->getQueryString());
 
-		$r = get_messages(Session::getLocalUser(), $pager->getStart(), $pager->getItemsPerPage());
+		$r = get_messages(DI::userSession()->getLocalUserId(), $pager->getStart(), $pager->getItemsPerPage());
 
 		if (!DBA::isResult($r)) {
 			DI::sysmsg()->addNotice(DI::l10n()->t('No messages.'));
@@ -244,14 +244,14 @@ function message_content(App $a)
 			LEFT JOIN `contact` ON `mail`.`contact-id` = `contact`.`id`
 			WHERE `mail`.`uid` = ? AND `mail`.`id` = ?
 			LIMIT 1",
-			Session::getLocalUser(),
+			DI::userSession()->getLocalUserId(),
 			DI::args()->getArgv()[1]
 		);
 		if (DBA::isResult($message)) {
 			$contact_id = $message['contact-id'];
 
 			$params = [
-				Session::getLocalUser(),
+				DI::userSession()->getLocalUserId(),
 				$message['parent-uri']
 			];
 
@@ -273,7 +273,7 @@ function message_content(App $a)
 
 			$messages = DBA::toArray($messages_stmt);
 
-			DBA::update('mail', ['seen' => 1], ['parent-uri' => $message['parent-uri'], 'uid' => Session::getLocalUser()]);
+			DBA::update('mail', ['seen' => 1], ['parent-uri' => $message['parent-uri'], 'uid' => DI::userSession()->getLocalUserId()]);
 		} else {
 			$messages = false;
 		}
diff --git a/mod/notes.php b/mod/notes.php
index 9363e51b8e..84c0711ebc 100644
--- a/mod/notes.php
+++ b/mod/notes.php
@@ -31,7 +31,7 @@ use Friendica\Module\BaseProfile;
 
 function notes_init(App $a)
 {
-	if (! Session::getLocalUser()) {
+	if (! DI::userSession()->getLocalUserId()) {
 		return;
 	}
 
@@ -41,7 +41,7 @@ function notes_init(App $a)
 
 function notes_content(App $a, bool $update = false)
 {
-	if (!Session::getLocalUser()) {
+	if (!DI::userSession()->getLocalUserId()) {
 		DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.'));
 		return;
 	}
@@ -53,7 +53,7 @@ function notes_content(App $a, bool $update = false)
 
 		$x = [
 			'lockstate' => 'lock',
-			'acl' => \Friendica\Core\ACL::getSelfOnlyHTML(Session::getLocalUser(), DI::l10n()->t('Personal notes are visible only by yourself.')),
+			'acl' => \Friendica\Core\ACL::getSelfOnlyHTML(DI::userSession()->getLocalUserId(), DI::l10n()->t('Personal notes are visible only by yourself.')),
 			'button' => DI::l10n()->t('Save'),
 			'acl_data' => '',
 		];
@@ -61,14 +61,14 @@ function notes_content(App $a, bool $update = false)
 		$o .= DI::conversation()->statusEditor($x, $a->getContactId());
 	}
 
-	$condition = ['uid' => Session::getLocalUser(), 'post-type' => Item::PT_PERSONAL_NOTE, 'gravity' => Item::GRAVITY_PARENT,
+	$condition = ['uid' => DI::userSession()->getLocalUserId(), 'post-type' => Item::PT_PERSONAL_NOTE, 'gravity' => Item::GRAVITY_PARENT,
 		'contact-id'=> $a->getContactId()];
 
 	if (DI::mode()->isMobile()) {
-		$itemsPerPage = DI::pConfig()->get(Session::getLocalUser(), 'system', 'itemspage_mobile_network',
+		$itemsPerPage = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'itemspage_mobile_network',
 			DI::config()->get('system', 'itemspage_network_mobile'));
 	} else {
-		$itemsPerPage = DI::pConfig()->get(Session::getLocalUser(), 'system', 'itemspage_network',
+		$itemsPerPage = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'itemspage_network',
 			DI::config()->get('system', 'itemspage_network'));
 	}
 
@@ -76,7 +76,7 @@ function notes_content(App $a, bool $update = false)
 
 	$params = ['order' => ['created' => true],
 		'limit' => [$pager->getStart(), $pager->getItemsPerPage()]];
-	$r = Post::selectThreadForUser(Session::getLocalUser(), ['uri-id'], $condition, $params);
+	$r = Post::selectThreadForUser(DI::userSession()->getLocalUserId(), ['uri-id'], $condition, $params);
 
 	$count = 0;
 
diff --git a/mod/oexchange.php b/mod/oexchange.php
index 0970af2fdf..4bc25e6fde 100644
--- a/mod/oexchange.php
+++ b/mod/oexchange.php
@@ -98,7 +98,7 @@ function oexchange_init(App $a)
 
 function oexchange_content(App $a)
 {
-	if (!Session::getLocalUser()) {
+	if (!DI::userSession()->getLocalUserId()) {
 		$o = Login::form();
 		return $o;
 	}
@@ -120,7 +120,7 @@ function oexchange_content(App $a)
 
 	$post = [];
 
-	$post['profile_uid'] = Session::getLocalUser();
+	$post['profile_uid'] = DI::userSession()->getLocalUserId();
 	$post['return'] = '/oexchange/done';
 	$post['body'] = HTML::toBBCode($s);
 
diff --git a/mod/ostatus_subscribe.php b/mod/ostatus_subscribe.php
index 50ff445696..31564ad32e 100644
--- a/mod/ostatus_subscribe.php
+++ b/mod/ostatus_subscribe.php
@@ -30,7 +30,7 @@ use Friendica\Protocol\ActivityPub;
 
 function ostatus_subscribe_content(App $a): string
 {
-	if (!Session::getLocalUser()) {
+	if (!DI::userSession()->getLocalUserId()) {
 		DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.'));
 		DI::baseUrl()->redirect('ostatus_subscribe');
 		// NOTREACHED
@@ -38,7 +38,7 @@ function ostatus_subscribe_content(App $a): string
 
 	$o = '<h2>' . DI::l10n()->t('Subscribing to contacts') . '</h2>';
 
-	$uid = Session::getLocalUser();
+	$uid = DI::userSession()->getLocalUserId();
 
 	$counter = intval($_REQUEST['counter'] ?? 0);
 
diff --git a/mod/photos.php b/mod/photos.php
index f47456a0bf..56b722e8f7 100644
--- a/mod/photos.php
+++ b/mod/photos.php
@@ -57,7 +57,7 @@ use Friendica\Network\HTTPException;
 
 function photos_init(App $a)
 {
-	if (DI::config()->get('system', 'block_public') && !Session::isAuthenticated()) {
+	if (DI::config()->get('system', 'block_public') && !DI::userSession()->isAuthenticated()) {
 		return;
 	}
 
@@ -69,11 +69,11 @@ function photos_init(App $a)
 			throw new HTTPException\NotFoundException(DI::l10n()->t('User not found.'));
 		}
 
-		$is_owner = (Session::getLocalUser() && (Session::getLocalUser() == $owner['uid']));
+		$is_owner = (DI::userSession()->getLocalUserId() && (DI::userSession()->getLocalUserId() == $owner['uid']));
 
 		$albums = Photo::getAlbums($owner['uid']);
 
-		$albums_visible = ((intval($owner['hidewall']) && !Session::isAuthenticated()) ? false : true);
+		$albums_visible = ((intval($owner['hidewall']) && !DI::userSession()->isAuthenticated()) ? false : true);
 
 		// add various encodings to the array so we can just loop through and pick them out in a template
 		$ret = ['success' => false];
@@ -96,7 +96,7 @@ function photos_init(App $a)
 			}
 		}
 
-		if (Session::getLocalUser() && $owner['uid'] == Session::getLocalUser()) {
+		if (DI::userSession()->getLocalUserId() && $owner['uid'] == DI::userSession()->getLocalUserId()) {
 			$can_post = true;
 		} else {
 			$can_post = false;
@@ -148,10 +148,10 @@ function photos_post(App $a)
 	$page_owner_uid = intval($user['uid']);
 	$community_page = $user['page-flags'] == User::PAGE_FLAGS_COMMUNITY;
 
-	if (Session::getLocalUser() && (Session::getLocalUser() == $page_owner_uid)) {
+	if (DI::userSession()->getLocalUserId() && (DI::userSession()->getLocalUserId() == $page_owner_uid)) {
 		$can_post = true;
-	} elseif ($community_page && !empty(Session::getRemoteContactID($page_owner_uid))) {
-		$contact_id = Session::getRemoteContactID($page_owner_uid);
+	} elseif ($community_page && !empty(DI::userSession()->getRemoteContactID($page_owner_uid))) {
+		$contact_id = DI::userSession()->getRemoteContactID($page_owner_uid);
 		$can_post = true;
 		$visitor = $contact_id;
 	}
@@ -229,7 +229,7 @@ function photos_post(App $a)
 				));
 			} else {
 				$r = DBA::toArray(DBA::p("SELECT distinct(`resource-id`) as `rid` FROM `photo` WHERE `uid` = ? AND `album` = ?",
-					Session::getLocalUser(),
+					DI::userSession()->getLocalUserId(),
 					$album
 				));
 			}
@@ -268,7 +268,7 @@ function photos_post(App $a)
 				$condition = ['contact-id' => $visitor, 'uid' => $page_owner_uid, 'resource-id' => DI::args()->getArgv()[3]];
 
 			} else {
-				$condition = ['uid' => Session::getLocalUser(), 'resource-id' => DI::args()->getArgv()[3]];
+				$condition = ['uid' => DI::userSession()->getLocalUserId(), 'resource-id' => DI::args()->getArgv()[3]];
 			}
 
 			$photo = DBA::selectFirst('photo', ['resource-id'], $condition);
@@ -794,7 +794,7 @@ function photos_content(App $a)
 		throw new HTTPException\NotFoundException(DI::l10n()->t('User not found.'));
 	}
 
-	if (DI::config()->get('system', 'block_public') && !Session::isAuthenticated()) {
+	if (DI::config()->get('system', 'block_public') && !DI::userSession()->isAuthenticated()) {
 		DI::sysmsg()->addNotice(DI::l10n()->t('Public access denied.'));
 		return;
 	}
@@ -840,10 +840,10 @@ function photos_content(App $a)
 
 	$community_page = (($user['page-flags'] == User::PAGE_FLAGS_COMMUNITY) ? true : false);
 
-	if (Session::getLocalUser() && (Session::getLocalUser() == $owner_uid)) {
+	if (DI::userSession()->getLocalUserId() && (DI::userSession()->getLocalUserId() == $owner_uid)) {
 		$can_post = true;
-	} elseif ($community_page && !empty(Session::getRemoteContactID($owner_uid))) {
-		$contact_id = Session::getRemoteContactID($owner_uid);
+	} elseif ($community_page && !empty(DI::userSession()->getRemoteContactID($owner_uid))) {
+		$contact_id = DI::userSession()->getRemoteContactID($owner_uid);
 		$contact = DBA::selectFirst('contact', [], ['id' => $contact_id, 'uid' => $owner_uid, 'blocked' => false, 'pending' => false]);
 
 		if (DBA::isResult($contact)) {
@@ -854,21 +854,21 @@ function photos_content(App $a)
 	}
 
 	// perhaps they're visiting - but not a community page, so they wouldn't have write access
-	if (!empty(Session::getRemoteContactID($owner_uid)) && !$visitor) {
-		$contact_id = Session::getRemoteContactID($owner_uid);
+	if (!empty(DI::userSession()->getRemoteContactID($owner_uid)) && !$visitor) {
+		$contact_id = DI::userSession()->getRemoteContactID($owner_uid);
 
 		$contact = DBA::selectFirst('contact', [], ['id' => $contact_id, 'uid' => $owner_uid, 'blocked' => false, 'pending' => false]);
 
 		$remote_contact = DBA::isResult($contact);
 	}
 
-	if (!$remote_contact && Session::getLocalUser()) {
+	if (!$remote_contact && DI::userSession()->getLocalUserId()) {
 		$contact_id = $_SESSION['cid'];
 
 		$contact = DBA::selectFirst('contact', [], ['id' => $contact_id, 'uid' => $owner_uid, 'blocked' => false, 'pending' => false]);
 	}
 
-	if ($user['hidewall'] && (Session::getLocalUser() != $owner_uid) && !$remote_contact) {
+	if ($user['hidewall'] && (DI::userSession()->getLocalUserId() != $owner_uid) && !$remote_contact) {
 		DI::sysmsg()->addNotice(DI::l10n()->t('Access to this item is restricted.'));
 		return;
 	}
@@ -878,7 +878,7 @@ function photos_content(App $a)
 	$o = "";
 
 	// tabs
-	$is_owner = (Session::getLocalUser() && (Session::getLocalUser() == $owner_uid));
+	$is_owner = (DI::userSession()->getLocalUserId() && (DI::userSession()->getLocalUserId() == $owner_uid));
 	$o .= BaseProfile::getTabsHTML($a, 'photos', $is_owner, $user['nickname'], $profile['hide-friends']);
 
 	// Display upload form
@@ -1197,7 +1197,7 @@ function photos_content(App $a)
 			}
 
 			if (
-				$ph[0]['uid'] == Session::getLocalUser()
+				$ph[0]['uid'] == DI::userSession()->getLocalUserId()
 				&& (strlen($ph[0]['allow_cid']) || strlen($ph[0]['allow_gid']) || strlen($ph[0]['deny_cid']) || strlen($ph[0]['deny_gid']))
 			) {
 				$tools['lock'] = DI::l10n()->t('Private Photo');
@@ -1237,7 +1237,7 @@ function photos_content(App $a)
 			$params = ['order' => ['id'], 'limit' => [$pager->getStart(), $pager->getItemsPerPage()]];
 			$items = Post::toArray(Post::selectForUser($link_item['uid'], Item::ITEM_FIELDLIST, $condition, $params));
 
-			if (Session::getLocalUser() == $link_item['uid']) {
+			if (DI::userSession()->getLocalUserId() == $link_item['uid']) {
 				Item::update(['unseen' => false], ['parent' => $link_item['parent']]);
 			}
 		}
@@ -1315,7 +1315,7 @@ function photos_content(App $a)
 					 */
 					$qcomment = null;
 					if (Addon::isEnabled('qcomment')) {
-						$words = DI::pConfig()->get(Session::getLocalUser(), 'qcomment', 'words');
+						$words = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'qcomment', 'words');
 						$qcomment = $words ? explode("\n", $words) : [];
 					}
 
@@ -1346,7 +1346,7 @@ function photos_content(App $a)
 				'attendmaybe' => []
 			];
 
-			if (DI::pConfig()->get(Session::getLocalUser(), 'system', 'hide_dislike')) {
+			if (DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'hide_dislike')) {
 				unset($conv_responses['dislike']);
 			}
 
@@ -1371,7 +1371,7 @@ function photos_content(App $a)
 					 */
 					$qcomment = null;
 					if (Addon::isEnabled('qcomment')) {
-						$words = DI::pConfig()->get(Session::getLocalUser(), 'qcomment', 'words');
+						$words = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'qcomment', 'words');
 						$qcomment = $words ? explode("\n", $words) : [];
 					}
 
@@ -1413,7 +1413,7 @@ function photos_content(App $a)
 						$sparkle = '';
 					}
 
-					$dropping = (($item['contact-id'] == $contact_id) || ($item['uid'] == Session::getLocalUser()));
+					$dropping = (($item['contact-id'] == $contact_id) || ($item['uid'] == DI::userSession()->getLocalUserId()));
 					$drop = [
 						'dropping' => $dropping,
 						'pagedrop' => false,
@@ -1445,7 +1445,7 @@ function photos_content(App $a)
 						 */
 						$qcomment = null;
 						if (Addon::isEnabled('qcomment')) {
-							$words = DI::pConfig()->get(Session::getLocalUser(), 'qcomment', 'words');
+							$words = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'qcomment', 'words');
 							$qcomment = $words ? explode("\n", $words) : [];
 						}
 
@@ -1484,7 +1484,7 @@ function photos_content(App $a)
 					'$dislike' => DI::l10n()->t('Dislike'),
 					'$wait' => DI::l10n()->t('Please wait'),
 					'$dislike_title' => DI::l10n()->t('I don\'t like this (toggle)'),
-					'$hide_dislike' => DI::pConfig()->get(Session::getLocalUser(), 'system', 'hide_dislike'),
+					'$hide_dislike' => DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'hide_dislike'),
 					'$responses' => $responses,
 					'$return_path' => DI::args()->getQueryString(),
 				]);
diff --git a/mod/redir.php b/mod/redir.php
index 6243710b25..afdb20d486 100644
--- a/mod/redir.php
+++ b/mod/redir.php
@@ -32,7 +32,7 @@ use Friendica\Network\HTTPClient\Client\HttpClientOptions;
 use Friendica\Util\Strings;
 
 function redir_init(App $a) {
-	if (!Session::isAuthenticated()) {
+	if (!DI::userSession()->isAuthenticated()) {
 		throw new \Friendica\Network\HTTPException\ForbiddenException(DI::l10n()->t('Access denied.'));
 	}
 
@@ -52,7 +52,7 @@ function redir_init(App $a) {
 	}
 
 	$fields = ['id', 'uid', 'nurl', 'url', 'addr', 'name'];
-	$contact = DBA::selectFirst('contact', $fields, ['id' => $cid, 'uid' => [0, Session::getLocalUser()]]);
+	$contact = DBA::selectFirst('contact', $fields, ['id' => $cid, 'uid' => [0, DI::userSession()->getLocalUserId()]]);
 	if (!DBA::isResult($contact)) {
 		throw new \Friendica\Network\HTTPException\NotFoundException(DI::l10n()->t('Contact not found.'));
 	}
@@ -65,10 +65,10 @@ function redir_init(App $a) {
 		$a->redirect($url ?: $contact_url);
 	}
 
-	if ($contact['uid'] == 0 && Session::getLocalUser()) {
+	if ($contact['uid'] == 0 && DI::userSession()->getLocalUserId()) {
 		// Let's have a look if there is an established connection
 		// between the public contact we have found and the local user.
-		$contact = DBA::selectFirst('contact', $fields, ['nurl' => $contact['nurl'], 'uid' => Session::getLocalUser()]);
+		$contact = DBA::selectFirst('contact', $fields, ['nurl' => $contact['nurl'], 'uid' => DI::userSession()->getLocalUserId()]);
 
 		if (DBA::isResult($contact)) {
 			$cid = $contact['id'];
@@ -83,7 +83,7 @@ function redir_init(App $a) {
 		}
 	}
 
-	if (Session::getRemoteUser()) {
+	if (DI::userSession()->getRemoteUserId) {
 		$host = substr(DI::baseUrl()->getUrlPath() . (DI::baseUrl()->getUrlPath() ? '/' . DI::baseUrl()->getUrlPath() : ''), strpos(DI::baseUrl()->getUrlPath(), '://') + 3);
 		$remotehost = substr($contact['addr'], strpos($contact['addr'], '@') + 1);
 
@@ -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(DI::session()->get('visitor_visiting')) == DI::session()->get('visitor_id'))) {
+		if (($host == $remotehost) && (DI::userSession()->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;
diff --git a/mod/removeme.php b/mod/removeme.php
index 5555fcbb7b..f962ed07de 100644
--- a/mod/removeme.php
+++ b/mod/removeme.php
@@ -29,7 +29,7 @@ use Friendica\Util\Strings;
 
 function removeme_post(App $a)
 {
-	if (!Session::getLocalUser()) {
+	if (!DI::userSession()->getLocalUserId()) {
 		return;
 	}
 
@@ -65,7 +65,7 @@ function removeme_post(App $a)
 			->withMessage(
 				$l10n->t('[Friendica System Notify]') . ' ' . $l10n->t('User deleted their account'),
 				$l10n->t('On your Friendica node an user deleted their account. Please ensure that their data is removed from the backups.'),
-				$l10n->t('The user id is %d', Session::getLocalUser()))
+				$l10n->t('The user id is %d', DI::userSession()->getLocalUserId()))
 			->forUser($admin)
 			->withRecipient($admin['email'])
 			->build();
@@ -84,7 +84,7 @@ function removeme_post(App $a)
 
 function removeme_content(App $a)
 {
-	if (!Session::getLocalUser()) {
+	if (!DI::userSession()->getLocalUserId()) {
 		DI::baseUrl()->redirect();
 	}
 
diff --git a/mod/repair_ostatus.php b/mod/repair_ostatus.php
index 8ae294a0ac..686516a55e 100644
--- a/mod/repair_ostatus.php
+++ b/mod/repair_ostatus.php
@@ -28,7 +28,7 @@ use Friendica\Model\Contact;
 
 function repair_ostatus_content(App $a) {
 
-	if (!Session::getLocalUser()) {
+	if (!DI::userSession()->getLocalUserId()) {
 		DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.'));
 		DI::baseUrl()->redirect('ostatus_repair');
 		// NOTREACHED
@@ -36,7 +36,7 @@ function repair_ostatus_content(App $a) {
 
 	$o = '<h2>' . DI::l10n()->t('Resubscribing to OStatus contacts') . '</h2>';
 
-	$uid = Session::getLocalUser();
+	$uid = DI::userSession()->getLocalUserId();
 
 	$counter = intval($_REQUEST['counter'] ?? 0);
 
diff --git a/mod/settings.php b/mod/settings.php
index 5f3be27678..e24127cbb5 100644
--- a/mod/settings.php
+++ b/mod/settings.php
@@ -37,7 +37,7 @@ use Friendica\Protocol\Email;
 
 function settings_init(App $a)
 {
-	if (!Session::getLocalUser()) {
+	if (!DI::userSession()->getLocalUserId()) {
 		DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.'));
 		return;
 	}
@@ -70,12 +70,12 @@ function settings_post(App $a)
 		BaseModule::checkFormSecurityTokenRedirectOnError(DI::args()->getQueryString(), 'settings_connectors');
 
 		if (!empty($_POST['general-submit'])) {
-			DI::pConfig()->set(Session::getLocalUser(), 'system', 'accept_only_sharer', intval($_POST['accept_only_sharer']));
-			DI::pConfig()->set(Session::getLocalUser(), 'system', 'disable_cw', !intval($_POST['enable_cw']));
-			DI::pConfig()->set(Session::getLocalUser(), 'system', 'no_intelligent_shortening', !intval($_POST['enable_smart_shortening']));
-			DI::pConfig()->set(Session::getLocalUser(), 'system', 'simple_shortening', intval($_POST['simple_shortening']));
-			DI::pConfig()->set(Session::getLocalUser(), 'system', 'attach_link_title', intval($_POST['attach_link_title']));
-			DI::pConfig()->set(Session::getLocalUser(), 'ostatus', 'legacy_contact', $_POST['legacy_contact']);
+			DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'system', 'accept_only_sharer', intval($_POST['accept_only_sharer']));
+			DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'system', 'disable_cw', !intval($_POST['enable_cw']));
+			DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'system', 'no_intelligent_shortening', !intval($_POST['enable_smart_shortening']));
+			DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'system', 'simple_shortening', intval($_POST['simple_shortening']));
+			DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'system', 'attach_link_title', intval($_POST['attach_link_title']));
+			DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'ostatus', 'legacy_contact', $_POST['legacy_contact']);
 		} elseif (!empty($_POST['mail-submit'])) {
 			$mail_server       =                 $_POST['mail_server']       ?? '';
 			$mail_port         =                 $_POST['mail_port']         ?? '';
@@ -88,13 +88,13 @@ function settings_post(App $a)
 			$mail_pubmail      =                 $_POST['mail_pubmail']      ?? '';
 
 			if (function_exists('imap_open') && !DI::config()->get('system', 'imap_disabled')) {
-				if (!DBA::exists('mailacct', ['uid' => Session::getLocalUser()])) {
-					DBA::insert('mailacct', ['uid' => Session::getLocalUser()]);
+				if (!DBA::exists('mailacct', ['uid' => DI::userSession()->getLocalUserId()])) {
+					DBA::insert('mailacct', ['uid' => DI::userSession()->getLocalUserId()]);
 				}
 				if (strlen($mail_pass)) {
 					$pass = '';
 					openssl_public_encrypt($mail_pass, $pass, $user['pubkey']);
-					DBA::update('mailacct', ['pass' => bin2hex($pass)], ['uid' => Session::getLocalUser()]);
+					DBA::update('mailacct', ['pass' => bin2hex($pass)], ['uid' => DI::userSession()->getLocalUserId()]);
 				}
 
 				$r = DBA::update('mailacct', [
@@ -107,10 +107,10 @@ function settings_post(App $a)
 					'mailbox'      => 'INBOX',
 					'reply_to'     => $mail_replyto,
 					'pubmail'      => $mail_pubmail
-				], ['uid' => Session::getLocalUser()]);
+				], ['uid' => DI::userSession()->getLocalUserId()]);
 
 				Logger::debug('updating mailaccount', ['response' => $r]);
-				$mailacct = DBA::selectFirst('mailacct', [], ['uid' => Session::getLocalUser()]);
+				$mailacct = DBA::selectFirst('mailacct', [], ['uid' => DI::userSession()->getLocalUserId()]);
 				if (DBA::isResult($mailacct)) {
 					$mb = Email::constructMailboxName($mailacct);
 
@@ -136,7 +136,7 @@ function settings_post(App $a)
 		BaseModule::checkFormSecurityTokenRedirectOnError('/settings/features', 'settings_features');
 		foreach ($_POST as $k => $v) {
 			if (strpos($k, 'feature_') === 0) {
-				DI::pConfig()->set(Session::getLocalUser(), 'feature', substr($k, 8), ((intval($v)) ? 1 : 0));
+				DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'feature', substr($k, 8), ((intval($v)) ? 1 : 0));
 			}
 		}
 		return;
@@ -148,7 +148,7 @@ function settings_content(App $a)
 	$o = '';
 	Nav::setSelected('settings');
 
-	if (!Session::getLocalUser()) {
+	if (!DI::userSession()->getLocalUserId()) {
 		//DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.'));
 		return Login::form();
 	}
@@ -162,12 +162,12 @@ function settings_content(App $a)
 		if ((DI::args()->getArgc() > 3) && (DI::args()->getArgv()[2] === 'delete')) {
 			BaseModule::checkFormSecurityTokenRedirectOnError('/settings/oauth', 'settings_oauth', 't');
 
-			DBA::delete('application-token', ['application-id' => DI::args()->getArgv()[3], 'uid' => Session::getLocalUser()]);
+			DBA::delete('application-token', ['application-id' => DI::args()->getArgv()[3], 'uid' => DI::userSession()->getLocalUserId()]);
 			DI::baseUrl()->redirect('settings/oauth/', true);
 			return '';
 		}
 
-		$applications = DBA::selectToArray('application-view', ['id', 'uid', 'name', 'website', 'scopes', 'created_at'], ['uid' => Session::getLocalUser()]);
+		$applications = DBA::selectToArray('application-view', ['id', 'uid', 'name', 'website', 'scopes', 'created_at'], ['uid' => DI::userSession()->getLocalUserId()]);
 
 		$tpl = Renderer::getMarkupTemplate('settings/oauth.tpl');
 		$o .= Renderer::replaceMacros($tpl, [
@@ -226,7 +226,7 @@ function settings_content(App $a)
 			$arr[$fname] = [];
 			$arr[$fname][0] = $fdata[0];
 			foreach (array_slice($fdata,1) as $f) {
-				$arr[$fname][1][] = ['feature_' . $f[0], $f[1], Feature::isEnabled(Session::getLocalUser(), $f[0]), $f[2]];
+				$arr[$fname][1][] = ['feature_' . $f[0], $f[1], Feature::isEnabled(DI::userSession()->getLocalUserId(), $f[0]), $f[2]];
 			}
 		}
 
@@ -241,12 +241,12 @@ function settings_content(App $a)
 	}
 
 	if ((DI::args()->getArgc() > 1) && (DI::args()->getArgv()[1] === 'connectors')) {
-		$accept_only_sharer        = intval(DI::pConfig()->get(Session::getLocalUser(), 'system', 'accept_only_sharer'));
-		$enable_cw                 = !intval(DI::pConfig()->get(Session::getLocalUser(), 'system', 'disable_cw'));
-		$enable_smart_shortening   = !intval(DI::pConfig()->get(Session::getLocalUser(), 'system', 'no_intelligent_shortening'));
-		$simple_shortening         = intval(DI::pConfig()->get(Session::getLocalUser(), 'system', 'simple_shortening'));
-		$attach_link_title         = intval(DI::pConfig()->get(Session::getLocalUser(), 'system', 'attach_link_title'));
-		$legacy_contact            = DI::pConfig()->get(Session::getLocalUser(), 'ostatus', 'legacy_contact');
+		$accept_only_sharer        = intval(DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'accept_only_sharer'));
+		$enable_cw                 = !intval(DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'disable_cw'));
+		$enable_smart_shortening   = !intval(DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'no_intelligent_shortening'));
+		$simple_shortening         = intval(DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'simple_shortening'));
+		$attach_link_title         = intval(DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'attach_link_title'));
+		$legacy_contact            = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'ostatus', 'legacy_contact');
 
 		if (!empty($legacy_contact)) {
 			/// @todo Isn't it supposed to be a $a->internalRedirect() call?
@@ -280,7 +280,7 @@ function settings_content(App $a)
 
 		$mail_disabled = ((function_exists('imap_open') && (!DI::config()->get('system', 'imap_disabled'))) ? 0 : 1);
 		if (!$mail_disabled) {
-			$mailacct = DBA::selectFirst('mailacct', [], ['uid' => Session::getLocalUser()]);
+			$mailacct = DBA::selectFirst('mailacct', [], ['uid' => DI::userSession()->getLocalUserId()]);
 		} else {
 			$mailacct = null;
 		}
diff --git a/mod/share.php b/mod/share.php
index 1ebce5291f..e7d12ab278 100644
--- a/mod/share.php
+++ b/mod/share.php
@@ -31,7 +31,7 @@ use Friendica\Model\Post;
 function share_init(App $a) {
 	$post_id = ((DI::args()->getArgc() > 1) ? intval(DI::args()->getArgv()[1]) : 0);
 
-	if (!$post_id || !Session::getLocalUser()) {
+	if (!$post_id || !DI::userSession()->getLocalUserId()) {
 		System::exit();
 	}
 
diff --git a/mod/suggest.php b/mod/suggest.php
index 207a49e883..19d36735c9 100644
--- a/mod/suggest.php
+++ b/mod/suggest.php
@@ -31,7 +31,7 @@ use Friendica\Network\HTTPException;
 
 function suggest_content(App $a)
 {
-	if (!Session::getLocalUser()) {
+	if (!DI::userSession()->getLocalUserId()) {
 		throw new HTTPException\ForbiddenException(DI::l10n()->t('Permission denied.'));
 	}
 
@@ -40,7 +40,7 @@ function suggest_content(App $a)
 	DI::page()['aside'] .= Widget::findPeople();
 	DI::page()['aside'] .= Widget::follow();
 
-	$contacts = Contact\Relation::getSuggestions(Session::getLocalUser());
+	$contacts = Contact\Relation::getSuggestions(DI::userSession()->getLocalUserId());
 	if (!DBA::isResult($contacts)) {
 		return DI::l10n()->t('No suggestions available. If this is a new site, please try again in 24 hours.');
 	}
diff --git a/mod/tagger.php b/mod/tagger.php
index 5e209ec943..05a9418f6a 100644
--- a/mod/tagger.php
+++ b/mod/tagger.php
@@ -37,7 +37,7 @@ use Friendica\Worker\Delivery;
 
 function tagger_content(App $a)
 {
-	if (!Session::isAuthenticated()) {
+	if (!DI::userSession()->isAuthenticated()) {
 		return;
 	}
 
@@ -63,13 +63,13 @@ function tagger_content(App $a)
 
 	$owner_uid = $item['uid'];
 
-	if (Session::getLocalUser() != $owner_uid) {
+	if (DI::userSession()->getLocalUserId() != $owner_uid) {
 		return;
 	}
 
-	$contact = Contact::selectFirst([], ['self' => true, 'uid' => Session::getLocalUser()]);
+	$contact = Contact::selectFirst([], ['self' => true, 'uid' => DI::userSession()->getLocalUserId()]);
 	if (!DBA::isResult($contact)) {
-		Logger::warning('Self contact not found.', ['uid' => Session::getLocalUser()]);
+		Logger::warning('Self contact not found.', ['uid' => DI::userSession()->getLocalUserId()]);
 		return;
 	}
 
diff --git a/mod/tagrm.php b/mod/tagrm.php
index 7ffa7616b8..197650bfa1 100644
--- a/mod/tagrm.php
+++ b/mod/tagrm.php
@@ -29,7 +29,7 @@ use Friendica\Model\Tag;
 
 function tagrm_post(App $a)
 {
-	if (!Session::getLocalUser()) {
+	if (!DI::userSession()->getLocalUserId()) {
 		DI::baseUrl()->redirect($_SESSION['photo_return']);
 	}
 
@@ -62,7 +62,7 @@ function update_tags($item_id, $tags)
 		return;
 	}
 
-	$item = Post::selectFirst(['uri-id'], ['id' => $item_id, 'uid' => Session::getLocalUser()]);
+	$item = Post::selectFirst(['uri-id'], ['id' => $item_id, 'uid' => DI::userSession()->getLocalUserId()]);
 	if (!DBA::isResult($item)) {
 		return;
 	}
@@ -82,7 +82,7 @@ function tagrm_content(App $a)
 
 	$photo_return = $_SESSION['photo_return'] ?? '';
 
-	if (!Session::getLocalUser()) {
+	if (!DI::userSession()->getLocalUserId()) {
 		DI::baseUrl()->redirect($photo_return);
 		// NOTREACHED
 	}
@@ -98,7 +98,7 @@ function tagrm_content(App $a)
 		// NOTREACHED
 	}
 
-	$item = Post::selectFirst(['uri-id'], ['id' => $item_id, 'uid' => Session::getLocalUser()]);
+	$item = Post::selectFirst(['uri-id'], ['id' => $item_id, 'uid' => DI::userSession()->getLocalUserId()]);
 	if (!DBA::isResult($item)) {
 		DI::baseUrl()->redirect($photo_return);
 	}
diff --git a/mod/unfollow.php b/mod/unfollow.php
index ec8cd45067..04e487936d 100644
--- a/mod/unfollow.php
+++ b/mod/unfollow.php
@@ -32,7 +32,7 @@ use Friendica\Util\Strings;
 
 function unfollow_post(App $a)
 {
-	if (!Session::getLocalUser()) {
+	if (!DI::userSession()->getLocalUserId()) {
 		DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.'));
 		DI::baseUrl()->redirect('login');
 		// NOTREACHED
@@ -47,17 +47,17 @@ function unfollow_content(App $a)
 {
 	$base_return_path = 'contact';
 
-	if (!Session::getLocalUser()) {
+	if (!DI::userSession()->getLocalUserId()) {
 		DI::sysmsg()->addNotice(DI::l10n()->t('Permission denied.'));
 		DI::baseUrl()->redirect('login');
 		// NOTREACHED
 	}
 
-	$uid = Session::getLocalUser();
+	$uid = DI::userSession()->getLocalUserId();
 	$url = trim($_REQUEST['url']);
 
 	$condition = ["`uid` = ? AND (`rel` = ? OR `rel` = ?) AND (`nurl` = ? OR `alias` = ? OR `alias` = ?)",
-		Session::getLocalUser(), Contact::SHARING, Contact::FRIEND, Strings::normaliseLink($url),
+		DI::userSession()->getLocalUserId(), Contact::SHARING, Contact::FRIEND, Strings::normaliseLink($url),
 		Strings::normaliseLink($url), $url];
 
 	$contact = DBA::selectFirst('contact', ['url', 'id', 'uid', 'network', 'addr', 'name'], $condition);
@@ -119,7 +119,7 @@ function unfollow_process(string $url)
 {
 	$base_return_path = 'contact';
 
-	$uid = Session::getLocalUser();
+	$uid = DI::userSession()->getLocalUserId();
 
 	$owner = User::getOwnerDataById($uid);
 	if (!$owner) {
diff --git a/mod/update_contact.php b/mod/update_contact.php
index 21e46b19d4..17fa2b7f8b 100644
--- a/mod/update_contact.php
+++ b/mod/update_contact.php
@@ -31,7 +31,7 @@ use Friendica\Model\Contact;
 
 function update_contact_content(App $a)
 {
-	if (!empty(DI::args()->get(1)) && (!empty($_GET['force']) || !DI::pConfig()->get(Session::getLocalUser(), 'system', 'no_auto_update'))) {
+	if (!empty(DI::args()->get(1)) && (!empty($_GET['force']) || !DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'no_auto_update'))) {
 		$contact = Contact::getById(DI::args()->get(1), ['id', 'deleted']);
 		if (DBA::isResult($contact) && empty($contact['deleted'])) {
 			DI::page()['aside'] = '';
diff --git a/mod/wall_attach.php b/mod/wall_attach.php
index 7f12d15e64..402348c4ba 100644
--- a/mod/wall_attach.php
+++ b/mod/wall_attach.php
@@ -55,10 +55,10 @@ function wall_attach_post(App $a) {
 	$page_owner_cid = $owner['id'];
 	$community_page = $owner['page-flags'] == User::PAGE_FLAGS_COMMUNITY;
 
-	if (Session::getLocalUser() && (Session::getLocalUser() == $page_owner_uid)) {
+	if (DI::userSession()->getLocalUserId() && (DI::userSession()->getLocalUserId() == $page_owner_uid)) {
 		$can_post = true;
-	} elseif ($community_page && !empty(Session::getRemoteContactID($page_owner_uid))) {
-		$contact_id = Session::getRemoteContactID($page_owner_uid);
+	} elseif ($community_page && !empty(DI::userSession()->getRemoteContactID($page_owner_uid))) {
+		$contact_id = DI::userSession()->getRemoteContactID($page_owner_uid);
 		$can_post = DBA::exists('contact', ['blocked' => false, 'pending' => false, 'id' => $contact_id, 'uid' => $page_owner_uid]);
 	}
 
diff --git a/mod/wall_upload.php b/mod/wall_upload.php
index d66e2af8ff..c5ac89dc4a 100644
--- a/mod/wall_upload.php
+++ b/mod/wall_upload.php
@@ -76,10 +76,10 @@ function wall_upload_post(App $a, $desktopmode = true)
 	$page_owner_nick  = $user['nickname'];
 	$community_page   = (($user['page-flags'] == User::PAGE_FLAGS_COMMUNITY) ? true : false);
 
-	if ((Session::getLocalUser()) && (Session::getLocalUser() == $page_owner_uid)) {
+	if ((DI::userSession()->getLocalUserId()) && (DI::userSession()->getLocalUserId() == $page_owner_uid)) {
 		$can_post = true;
-	} elseif ($community_page && !empty(Session::getRemoteContactID($page_owner_uid))) {
-		$contact_id = Session::getRemoteContactID($page_owner_uid);
+	} elseif ($community_page && !empty(DI::userSession()->getRemoteContactID($page_owner_uid))) {
+		$contact_id = DI::userSession()->getRemoteContactID($page_owner_uid);
 		$can_post = DBA::exists('contact', ['blocked' => false, 'pending' => false, 'id' => $contact_id, 'uid' => $page_owner_uid]);
 		$visitor = $contact_id;
 	}