Improved templating engine wrapping.

This commit is contained in:
flash 2025-04-03 14:37:19 +00:00
parent e4c3e4c052
commit ceb6bece09
Signed by: flash
GPG key ID: 2C9C2C574D47FE3E
86 changed files with 784 additions and 515 deletions

View file

@ -8,7 +8,7 @@ if(!isset($msz) || !($msz instanceof \Misuzu\MisuzuContext))
die('Script must be called through the Misuzu route dispatcher.');
if($msz->authInfo->loggedIn) {
Tools::redirect($msz->urls->format('index'));
Tools::redirect($msz->routingCtx->urls->format('index'));
return;
}
@ -27,7 +27,7 @@ if(!empty($_GET['resolve'])) {
echo json_encode([
'id' => 0,
'name' => '',
'avatar' => $msz->urls->format('user-avatar', ['res' => 200, 'user' => 0]),
'avatar' => $msz->routingCtx->urls->format('user-avatar', ['res' => 200, 'user' => 0]),
]);
return;
}
@ -35,7 +35,7 @@ if(!empty($_GET['resolve'])) {
echo json_encode([
'id' => (int)$userInfo->id,
'name' => $userInfo->name,
'avatar' => $msz->urls->format('user-avatar', ['user' => $userInfo->id, 'res' => 200]),
'avatar' => $msz->routingCtx->urls->format('user-avatar', ['user' => $userInfo->id, 'res' => 200]),
]);
return;
}
@ -132,7 +132,7 @@ while($_SERVER['REQUEST_METHOD'] === 'POST') {
if($msz->usersCtx->totps->hasUserTotp($userInfo)) {
$tfaToken = $msz->authCtx->tfaSessions->createToken($userInfo);
Tools::redirect($msz->urls->format('auth-two-factor', ['token' => $tfaToken, 'redirect' => $loginRedirect]));
Tools::redirect($msz->routingCtx->urls->format('auth-two-factor', ['token' => $tfaToken, 'redirect' => $loginRedirect]));
return;
}
@ -154,7 +154,7 @@ while($_SERVER['REQUEST_METHOD'] === 'POST') {
AuthTokenCookie::apply($msz->authCtx->createAuthTokenPacker()->pack($tokenInfo));
if(!Tools::isLocalURL($loginRedirect))
$loginRedirect = $msz->urls->format('index');
$loginRedirect = $msz->routingCtx->urls->format('index');
Tools::redirect($loginRedirect);
return;
@ -165,7 +165,7 @@ $oauth2Mode = !empty($_GET['oauth2']);
$loginUsername = !empty($_POST['username']) && is_string($_POST['username']) ? $_POST['username'] : (
!empty($_GET['username']) && is_string($_GET['username']) ? $_GET['username'] : ''
);
$loginRedirect = $welcomeMode ? $msz->urls->format('index') : (!empty($_GET['redirect']) && is_string($_GET['redirect']) ? $_GET['redirect'] : null) ?? $_SERVER['HTTP_REFERER'] ?? $msz->urls->format('index');
$loginRedirect = $welcomeMode ? $msz->routingCtx->urls->format('index') : (!empty($_GET['redirect']) && is_string($_GET['redirect']) ? $_GET['redirect'] : null) ?? $_SERVER['HTTP_REFERER'] ?? $msz->routingCtx->urls->format('index');
$canRegisterAccount = !$siteIsPrivate;
Template::render('auth.login', [

View file

@ -24,4 +24,4 @@ if($msz->authInfo->loggedIn) {
AuthTokenCookie::apply($msz->authCtx->createAuthTokenPacker()->pack($tokenInfo));
}
Tools::redirect($msz->urls->format('index'));;
Tools::redirect($msz->routingCtx->urls->format('index'));;

View file

@ -8,7 +8,7 @@ if(!isset($msz) || !($msz instanceof \Misuzu\MisuzuContext))
die('Script must be called through the Misuzu route dispatcher.');
if($msz->authInfo->loggedIn) {
Tools::redirect($msz->urls->format('settings-account'));
Tools::redirect($msz->routingCtx->urls->format('settings-account'));
return;
}
@ -21,7 +21,7 @@ if($userId > 0)
try {
$userInfo = $msz->usersCtx->users->getUser((string)$userId, 'id');
} catch(RuntimeException $ex) {
Tools::redirect($msz->urls->format('auth-forgot'));
Tools::redirect($msz->routingCtx->urls->format('auth-forgot'));
return;
}
@ -75,7 +75,7 @@ while($canResetPassword) {
$msz->authCtx->recoveryTokens->invalidateToken($tokenInfo);
Tools::redirect($msz->urls->format('auth-login', ['redirect' => '/']));
Tools::redirect($msz->routingCtx->urls->format('auth-login', ['redirect' => '/']));
return;
}
@ -106,8 +106,6 @@ while($canResetPassword) {
} catch(RuntimeException $ex) {
$tokenInfo = $msz->authCtx->recoveryTokens->createToken($forgotUser, $ipAddress);
$msz->initMailer();
$recoveryMessage = Mailer::template('password-recovery', [
'username' => $forgotUser->name,
'token' => $tokenInfo->code,
@ -125,7 +123,7 @@ while($canResetPassword) {
}
}
Tools::redirect($msz->urls->format('auth-reset', ['user' => $forgotUser->id]));
Tools::redirect($msz->routingCtx->urls->format('auth-reset', ['user' => $forgotUser->id]));
return;
}

View file

@ -8,7 +8,7 @@ if(!isset($msz) || !($msz instanceof \Misuzu\MisuzuContext))
die('Script must be called through the Misuzu route dispatcher.');
if($msz->authInfo->loggedIn) {
Tools::redirect($msz->urls->format('index'));
Tools::redirect($msz->routingCtx->urls->format('index'));
return;
}
@ -86,13 +86,13 @@ while($_SERVER['REQUEST_METHOD'] === 'POST') {
}
$msz->usersCtx->users->addRoles($userInfo, $defaultRoleInfo);
$msz->config->setString('users.newest', $userInfo->id);
$msz->usersCtx->newestUserId = $userInfo->id;
$msz->perms->precalculatePermissions(
$msz->forumCtx->categories,
[$userInfo->id]
);
Tools::redirect($msz->urls->format('auth-login-welcome', ['username' => $userInfo->name]));
Tools::redirect($msz->routingCtx->urls->format('auth-login-welcome', ['username' => $userInfo->name]));
return;
}

View file

@ -17,9 +17,9 @@ if($msz->csrfCtx->verifyLegacy()) {
$tokenInfo = $tokenBuilder->toInfo();
AuthTokenCookie::apply($msz->authCtx->createAuthTokenPacker()->pack($tokenInfo));
Tools::redirect($msz->urls->format('manage-user', ['user' => $impUserId]));
Tools::redirect($msz->routingCtx->urls->format('manage-user', ['user' => $impUserId]));
return;
}
}
Tools::redirect($msz->urls->format('index'));
Tools::redirect($msz->routingCtx->urls->format('index'));

View file

@ -9,7 +9,7 @@ if(!isset($msz) || !($msz instanceof \Misuzu\MisuzuContext))
die('Script must be called through the Misuzu route dispatcher.');
if($msz->authInfo->loggedIn) {
Tools::redirect($msz->urls->format('index'));
Tools::redirect($msz->routingCtx->urls->format('index'));
return;
}
@ -26,13 +26,13 @@ $tokenString = !empty($_GET['token']) && is_scalar($_GET['token']) ? (string)$_G
$tokenUserId = $msz->authCtx->tfaSessions->getTokenUserId($tokenString);
if(empty($tokenUserId)) {
Tools::redirect($msz->urls->format('auth-login'));
Tools::redirect($msz->routingCtx->urls->format('auth-login'));
return;
}
$totpInfo = $msz->usersCtx->totps->getUserTotp($tokenUserId);
if($totpInfo === null) {
Tools::redirect($msz->urls->format('auth-login'));
Tools::redirect($msz->routingCtx->urls->format('auth-login'));
return;
}
@ -87,7 +87,7 @@ while($_SERVER['REQUEST_METHOD'] === 'POST') {
AuthTokenCookie::apply($msz->authCtx->createAuthTokenPacker()->pack($tokenInfo));
if(!Tools::isLocalURL($redirect))
$redirect = $msz->urls->format('index');
$redirect = $msz->routingCtx->urls->format('index');
Tools::redirect($redirect);
return;
@ -95,7 +95,7 @@ while($_SERVER['REQUEST_METHOD'] === 'POST') {
Template::render('auth.twofactor', [
'twofactor_notices' => $notices,
'twofactor_redirect' => !empty($_GET['redirect']) && is_string($_GET['redirect']) ? $_GET['redirect'] : $msz->urls->format('index'),
'twofactor_redirect' => !empty($_GET['redirect']) && is_string($_GET['redirect']) ? $_GET['redirect'] : $msz->routingCtx->urls->format('index'),
'twofactor_attempts_remaining' => $remainingAttempts,
'twofactor_token' => $tokenString,
]);

View file

@ -93,9 +93,9 @@ MD;
foreach($rankings as $ranking) {
$totalPostsCount += $ranking->postsCount;
$markdown .= sprintf("| %s | [%s](%s%s) | %s |\r\n", $ranking->position,
$ranking->user?->name ?? 'Deleted User', // @phpstan-ignore-line: no, it can be null
$ranking->user?->name ?? 'Deleted User', // @phpstan-ignore nullsafe.neverNull
$msz->siteInfo->url,
$msz->urls->format('user-profile', ['user' => $ranking->userId]),
$msz->routingCtx->urls->format('user-profile', ['user' => $ranking->userId]),
number_format($ranking->postsCount));
}

View file

@ -168,9 +168,9 @@ if(!empty($_POST)) {
}
if($isEditingTopic) {
$originalTopicTitle = $topicInfo?->title ?? null; // @phpstan-ignore-line: nope it can be null
$originalTopicTitle = $topicInfo?->title ?? null; // @phpstan-ignore nullsafe.neverNull
$topicTitleChanged = $topicTitle !== $originalTopicTitle;
$originalTopicType = $topicInfo?->typeString ?? 'discussion'; // @phpstan-ignore-line: this also
$originalTopicType = $topicInfo?->typeString ?? 'discussion'; // @phpstan-ignore nullsafe.neverNull
$topicTypeChanged = $topicType !== null && $topicType !== $originalTopicType;
$topicTitleLengths = $msz->config->getValues([
@ -255,9 +255,9 @@ if(!empty($_POST)) {
break;
}
if(empty($notices)) { // @phpstan-ignore-line: i'm guessing it gets the type confused at this point
if(empty($notices)) { // @phpstan-ignore empty.variable
// does this ternary ever return forum-topic?
$redirect = $msz->urls->format(empty($topicInfo) ? 'forum-topic' : 'forum-post', [
$redirect = $msz->routingCtx->urls->format(empty($topicInfo) ? 'forum-topic' : 'forum-post', [
'topic' => $topicId,
'post' => $postId,
]);

View file

@ -39,7 +39,7 @@ if($_SERVER['REQUEST_METHOD'] === 'GET' && !empty($_GET['delete'])) {
$msz->changelog->deleteChange($changeInfo);
$msz->logsCtx->createAuthedLog('CHANGELOG_ENTRY_DELETE', [$changeInfo->id]);
Tools::redirect($msz->urls->format('manage-changelog-changes'));
Tools::redirect($msz->routingCtx->urls->format('manage-changelog-changes'));
return;
}
@ -105,7 +105,7 @@ while($_SERVER['REQUEST_METHOD'] === 'POST' && $msz->csrfCtx->verifyLegacy()) {
[$changeInfo->id],
);
Tools::redirect($msz->urls->format('manage-changelog-change', ['change' => $changeInfo->id]));
Tools::redirect($msz->routingCtx->urls->format('manage-changelog-change', ['change' => $changeInfo->id]));
return;
}

View file

@ -28,7 +28,7 @@ if($_SERVER['REQUEST_METHOD'] === 'GET' && !empty($_GET['delete'])) {
$msz->changelog->deleteTag($tagInfo);
$msz->logsCtx->createAuthedLog('CHANGELOG_TAG_DELETE', [$tagInfo->id]);
Tools::redirect($msz->urls->format('manage-changelog-tags'));
Tools::redirect($msz->routingCtx->urls->format('manage-changelog-tags'));
return;
}
@ -57,7 +57,7 @@ while($_SERVER['REQUEST_METHOD'] === 'POST' && $msz->csrfCtx->verifyLegacy()) {
);
if($isNew) {
Tools::redirect($msz->urls->format('manage-changelog-tag', ['tag' => $tagInfo->id]));
Tools::redirect($msz->routingCtx->urls->format('manage-changelog-tag', ['tag' => $tagInfo->id]));
return;
} else $tagInfo = $loadTagInfo();
break;

View file

@ -16,7 +16,7 @@ if($_SERVER['REQUEST_METHOD'] === 'POST') {
$msz->logsCtx->createAuthedLog('FORUM_TOPIC_REDIR_CREATE', [$rTopicId]);
$msz->forumCtx->topicRedirects->createTopicRedirect($rTopicId, $msz->authInfo->userInfo, $rTopicURL);
Tools::redirect($msz->urls->format('manage-forum-topic-redirs'));
Tools::redirect($msz->routingCtx->urls->format('manage-forum-topic-redirs'));
return;
}
@ -27,7 +27,7 @@ if(!empty($_GET['m']) && $_GET['m'] === 'explode') {
$rTopicId = !empty($_GET['t']) && is_scalar($_GET['t']) ? (string)$_GET['t'] : '';
$msz->logsCtx->createAuthedLog('FORUM_TOPIC_REDIR_REMOVE', [$rTopicId]);
$msz->forumCtx->topicRedirects->deleteTopicRedirect($rTopicId);
Tools::redirect($msz->urls->format('manage-forum-topic-redirs'));
Tools::redirect($msz->routingCtx->urls->format('manage-forum-topic-redirs'));
return;
}

View file

@ -99,7 +99,7 @@ while($_SERVER['REQUEST_METHOD'] === 'POST' && $msz->csrfCtx->verifyLegacy()) {
[$emoteInfo->id],
);
Tools::redirect($msz->urls->format('manage-general-emoticon', ['emote' => $emoteInfo->id]));
Tools::redirect($msz->routingCtx->urls->format('manage-general-emoticon', ['emote' => $emoteInfo->id]));
return;
}

View file

@ -38,7 +38,7 @@ if($msz->csrfCtx->verifyLegacy() && !empty($_GET['emote'])) {
}
}
Tools::redirect($msz->urls->format('manage-general-emoticons'));
Tools::redirect($msz->routingCtx->urls->format('manage-general-emoticons'));
return;
}

View file

@ -14,7 +14,7 @@ if($valueInfo === null)
if($_SERVER['REQUEST_METHOD'] === 'POST' && $msz->csrfCtx->verifyLegacy()) {
$msz->logsCtx->createAuthedLog('CONFIG_DELETE', [$valueInfo->name]);
$msz->config->removeValues($valueInfo->name);
Tools::redirect($msz->urls->format('manage-general-settings'));
Tools::redirect($msz->routingCtx->urls->format('manage-general-settings'));
return;
}

View file

@ -76,7 +76,7 @@ while($_SERVER['REQUEST_METHOD'] === 'POST' && $msz->csrfCtx->verifyLegacy()) {
$msz->logsCtx->createAuthedLog($isNew ? 'CONFIG_CREATE' : 'CONFIG_UPDATE', [$sName]);
$applyFunc($sName, $sValue);
Tools::redirect($msz->urls->format('manage-general-settings'));
Tools::redirect($msz->routingCtx->urls->format('manage-general-settings'));
return;
}

View file

@ -28,7 +28,7 @@ if($_SERVER['REQUEST_METHOD'] === 'GET' && !empty($_GET['delete'])) {
$msz->news->deleteCategory($categoryInfo);
$msz->logsCtx->createAuthedLog('NEWS_CATEGORY_DELETE', [$categoryInfo->id]);
Tools::redirect($msz->urls->format('manage-news-categories'));
Tools::redirect($msz->routingCtx->urls->format('manage-news-categories'));
return;
}
@ -57,7 +57,7 @@ while($_SERVER['REQUEST_METHOD'] === 'POST' && $msz->csrfCtx->verifyLegacy()) {
);
if($isNew) {
Tools::redirect($msz->urls->format('manage-news-category', ['category' => $categoryInfo->id]));
Tools::redirect($msz->routingCtx->urls->format('manage-news-category', ['category' => $categoryInfo->id]));
return;
} else $categoryInfo = $loadCategoryInfo();
break;

View file

@ -29,7 +29,7 @@ if($_SERVER['REQUEST_METHOD'] === 'GET' && !empty($_GET['delete'])) {
$msz->news->deletePost($postInfo);
$msz->logsCtx->createAuthedLog('NEWS_POST_DELETE', [$postInfo->id]);
Tools::redirect($msz->urls->format('manage-news-posts'));
Tools::redirect($msz->routingCtx->urls->format('manage-news-posts'));
return;
}
@ -75,7 +75,7 @@ while($_SERVER['REQUEST_METHOD'] === 'POST' && $msz->csrfCtx->verifyLegacy()) {
if(isset($session->accessJwt) && is_string($session->accessJwt)
&& isset($session->did) && is_string($session->did)) {
$url = $msz->siteInfo->url . $msz->urls->format('news-post', ['post' => $postInfo->id]);
$url = $msz->siteInfo->url . $msz->routingCtx->urls->format('news-post', ['post' => $postInfo->id]);
$body = sprintf("News :: %s\n", $postInfo->title);
$urlStart = strlen($body);
$body .= $url;
@ -129,7 +129,7 @@ while($_SERVER['REQUEST_METHOD'] === 'POST' && $msz->csrfCtx->verifyLegacy()) {
} catch(RuntimeException $ex) {}
}
Tools::redirect($msz->urls->format('manage-news-post', ['post' => $postInfo->id]));
Tools::redirect($msz->routingCtx->urls->format('manage-news-post', ['post' => $postInfo->id]));
return;
} else $postInfo = $loadPostInfo();
break;

View file

@ -23,7 +23,7 @@ if($_SERVER['REQUEST_METHOD'] === 'GET' && !empty($_GET['delete'])) {
$msz->usersCtx->bans->deleteBans($banInfo);
$msz->logsCtx->createAuthedLog('BAN_DELETE', [$banInfo->id, $banInfo->userId]);
Tools::redirect($msz->urls->format('manage-users-bans', ['user' => $banInfo->userId]));
Tools::redirect($msz->routingCtx->urls->format('manage-users-bans', ['user' => $banInfo->userId]));
return;
}
@ -68,7 +68,7 @@ while($_SERVER['REQUEST_METHOD'] === 'POST' && $msz->csrfCtx->verifyLegacy()) {
);
$msz->logsCtx->createAuthedLog('BAN_CREATE', [$banInfo->id, $userInfo->id]);
Tools::redirect($msz->urls->format('manage-users-bans', ['user' => $userInfo->id]));
Tools::redirect($msz->routingCtx->urls->format('manage-users-bans', ['user' => $userInfo->id]));
return;
}

View file

@ -40,7 +40,7 @@ if($hasUserId) {
$msz->usersCtx->modNotes->deleteNotes($noteInfo);
$msz->logsCtx->createAuthedLog('MOD_NOTE_DELETE', [$noteInfo->id, $noteInfo->userId]);
Tools::redirect($msz->urls->format('manage-users-notes', ['user' => $noteInfo->userId]));
Tools::redirect($msz->routingCtx->urls->format('manage-users-notes', ['user' => $noteInfo->userId]));
return;
}
@ -70,7 +70,7 @@ while($_SERVER['REQUEST_METHOD'] === 'POST' && $msz->csrfCtx->verifyLegacy()) {
);
// this is easier
Tools::redirect($msz->urls->format('manage-users-note', ['note' => $noteInfo->id]));
Tools::redirect($msz->routingCtx->urls->format('manage-users-note', ['note' => $noteInfo->id]));
return;
}

View file

@ -162,7 +162,7 @@ while($_SERVER['REQUEST_METHOD'] === 'POST' && $msz->csrfCtx->verifyLegacy()) {
$msz->config->setBoolean('perms.needsRecalc', true);
}
Tools::redirect($msz->urls->format('manage-role', ['role' => $roleInfo->id]));
Tools::redirect($msz->routingCtx->urls->format('manage-role', ['role' => $roleInfo->id]));
return;
}

View file

@ -53,26 +53,17 @@ if($msz->csrfCtx->verifyLegacy() && $canEdit) {
$notices[] = 'You must be a super user to do this.';
} elseif(!is_string($_POST['impersonate_user']) || $_POST['impersonate_user'] !== 'meow') {
$notices[] = "You didn't say the magic word!";
} else {
$allowToImpersonate = $currentUser->super;
} elseif($msz->usersCtx->canImpersonateUser($currentUser, $userInfo)) {
$msz->logsCtx->createAuthedLog('USER_IMPERSONATE', [$userInfo->id, $userInfo->name]);
if(!$allowToImpersonate) {
$allowImpersonateUsers = $msz->config->getArray(sprintf('impersonate.allow.u%s', $currentUser->id));
$allowToImpersonate = in_array($userInfo->id, $allowImpersonateUsers, true);
}
$tokenBuilder = $msz->authInfo->tokenInfo->toBuilder();
$tokenBuilder->setImpersonatedUserId($userInfo->id);
$tokenInfo = $tokenBuilder->toInfo();
if($allowToImpersonate) {
$msz->logsCtx->createAuthedLog('USER_IMPERSONATE', [$userInfo->id, $userInfo->name]);
$tokenBuilder = $msz->authInfo->tokenInfo->toBuilder();
$tokenBuilder->setImpersonatedUserId($userInfo->id);
$tokenInfo = $tokenBuilder->toInfo();
AuthTokenCookie::apply($msz->authCtx->createAuthTokenPacker()->pack($tokenInfo));
Tools::redirect($msz->urls->format('index'));
return;
} else $notices[] = "You aren't allowed to impersonate this user.";
}
AuthTokenCookie::apply($msz->authCtx->createAuthTokenPacker()->pack($tokenInfo));
Tools::redirect($msz->routingCtx->urls->format('index'));
return;
} else $notices[] = "You aren't allowed to impersonate this user.";
}
if(!empty($_POST['send_test_email'])) {
@ -81,7 +72,6 @@ if($msz->csrfCtx->verifyLegacy() && $canEdit) {
} elseif(!is_string($_POST['send_test_email']) || $_POST['send_test_email'] !== 'yes_send_it') {
$notices[] = 'Invalid request thing shut the fuck up.';
} else {
$msz->initMailer();
$testMail = Mailer::sendMessage(
[$userInfo->emailAddress => $userInfo->name],
'Flashii Test E-mail',
@ -215,7 +205,7 @@ if($msz->csrfCtx->verifyLegacy() && $canEdit) {
[$userInfo->id]
);
Tools::redirect($msz->urls->format('manage-user', ['user' => $userInfo->id]));
Tools::redirect($msz->routingCtx->urls->format('manage-user', ['user' => $userInfo->id]));
return;
}

View file

@ -21,7 +21,7 @@ if($_SERVER['REQUEST_METHOD'] === 'GET' && !empty($_GET['delete'])) {
$msz->usersCtx->warnings->deleteWarnings($warnInfo);
$msz->logsCtx->createAuthedLog('WARN_DELETE', [$warnInfo->id, $warnInfo->userId]);
Tools::redirect($msz->urls->format('manage-users-warnings', ['user' => $warnInfo->userId]));
Tools::redirect($msz->routingCtx->urls->format('manage-users-warnings', ['user' => $warnInfo->userId]));
return;
}
@ -42,7 +42,7 @@ while($_SERVER['REQUEST_METHOD'] === 'POST' && $msz->csrfCtx->verifyLegacy()) {
);
$msz->logsCtx->createAuthedLog('WARN_CREATE', [$warnInfo->id, $userInfo->id]);
Tools::redirect($msz->urls->format('manage-users-warnings', ['user' => $userInfo->id]));
Tools::redirect($msz->routingCtx->urls->format('manage-users-warnings', ['user' => $userInfo->id]));
return;
}

View file

@ -30,7 +30,7 @@ try {
} catch(RuntimeException $ex) {
$userId = $msz->usersCtx->namesHistory->resolvePastUserName($userId);
if($userId !== null) {
header(sprintf('Location: %s', $msz->urls->format('user-profile', ['user' => $userId])));
header(sprintf('Location: %s', $msz->routingCtx->urls->format('user-profile', ['user' => $userId])));
return;
}
@ -58,11 +58,11 @@ switch($profileMode) {
Template::throwError(404);
case 'forum-topics':
Tools::redirect($msz->urls->format('search-query', ['query' => sprintf('type:forum:topic author:%s', $userInfo->name), 'section' => 'topics']));
Tools::redirect($msz->routingCtx->urls->format('search-query', ['query' => sprintf('type:forum:topic author:%s', $userInfo->name), 'section' => 'topics']));
return;
case 'forum-posts':
Tools::redirect($msz->urls->format('search-query', ['query' => sprintf('type:forum:post author:%s', $userInfo->name), 'section' => 'posts']));
Tools::redirect($msz->routingCtx->urls->format('search-query', ['query' => sprintf('type:forum:post author:%s', $userInfo->name), 'section' => 'posts']));
return;
case '':

View file

@ -37,7 +37,7 @@ while($_SERVER['REQUEST_METHOD'] === 'POST' && $msz->csrfCtx->verifyLegacy()) {
}
if($activeSessionKilled) {
Tools::redirect($msz->urls->format('index'));
Tools::redirect($msz->routingCtx->urls->format('index'));
return;
} else break;
}