Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion apps/juxtaposition-ui/src/middleware/consoleAuth.js
Original file line number Diff line number Diff line change
Expand Up @@ -68,13 +68,15 @@ export async function consoleAuth(request, response, next) {
});
}
const userAgent = request.headers['user-agent'];
if (request.user.accessLevel < 3 && (request.cookies.access_token || (!userAgent.includes('Nintendo WiiU') && !userAgent.includes('Nintendo 3DS')))) {
const uaIsConsole = userAgent.includes('Nintendo WiiU') || userAgent.includes('Nintendo 3DS');
if (request.user.accessLevel < 3 && (request.cookies.access_token || !uaIsConsole)) {
return response.render('portal/partials/ban_notification.ejs', {
user: null,
error: 'Invalid authentication method used.'
});
}

response.locals.uaIsConsole = uaIsConsole;
response.locals.lang = processLanguage(request.paramPackData);
response.locals.pid = request.pid;
return next();
Expand Down
2 changes: 2 additions & 0 deletions apps/juxtaposition-ui/src/services/juxt-web/views/context.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ export type RenderContext = {
cdnUrl: string;
moderator: boolean;
pid: number;
uaIsConsole?: boolean; // user agent looks like a Nintendo console
usersMap: HashMap<number, string>; // map of PID -> screen name
};

Expand All @@ -17,6 +18,7 @@ export function buildContext(res: Response): RenderContext {
lang: locals.lang,
cdnUrl: locals.cdnURL,
moderator: locals.moderator,
uaIsConsole: locals.uaIsConsole,
pid: locals.pid
};
}
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ export function CtrMessageThreadView(props: MessageThreadViewProps): ReactNode {
const otherUserName = props.ctx.usersMap.get(props.otherUser.pid) ?? '';

return (
<CtrRoot title={props.ctx.lang.global.messages}>
<CtrRoot ctx={props.ctx} title={props.ctx.lang.global.messages}>
<CtrPageBody>
<header id="header" className="buttons">
<h1 id="page-title">{otherUserName}</h1>
Expand Down
17 changes: 12 additions & 5 deletions apps/juxtaposition-ui/src/services/juxt-web/views/ctr/root.tsx
Original file line number Diff line number Diff line change
@@ -1,17 +1,24 @@
import type { RenderContext } from '@/services/juxt-web/views/context';
import type { ReactNode } from 'react';

function DefaultHead(): ReactNode {
export type DefaultHeadProps = {
ctx: RenderContext;
};

function DefaultHead(props: DefaultHeadProps): ReactNode {
const addDebugJs = !props.ctx.uaIsConsole; // Only serve debug js to non-console browsers
return (
<>
<link rel="stylesheet" type="text/css" href="/css/juxt.css" />
<script src="/js/debug.js"></script>
<script src="/js/pjax.js"></script>
<script src="/js/juxt.js"></script>
{/* Debug allows non-console browsers to have some amount of the cave API. */}
{addDebugJs ? <script src="/js/debug.global.js"></script> : null}
<script src="/js/juxt.global.js"></script>
</>
);
}

export type HtmlProps = {
ctx: RenderContext;
children?: ReactNode;
head?: ReactNode;
title: string;
Expand All @@ -21,7 +28,7 @@ export function CtrRoot(props: HtmlProps): ReactNode {
return (
<html lang="en">
<head>
<DefaultHead />
<DefaultHead ctx={props.ctx} />
<title>{props.title}</title>
{props.head}
</head>
Expand Down
40 changes: 0 additions & 40 deletions apps/juxtaposition-ui/src/webfiles/ctr/announcements.ejs

This file was deleted.

1 change: 0 additions & 1 deletion apps/juxtaposition-ui/src/webfiles/ctr/communities.ejs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
<header id="header" class="buttons">
<h1 id="page-title" class=""><%= lang.global.communities %></h1>
<a id="header-communities-button" class="right" href="/titles/all" data-pjax="#body"><%= lang.all_communities.text %></a>
<!--<a id="header-communities-button" class="left" href="#" data-pjax="#body" onclick="testOffline();">Test Offline Post</a>-->
</header>
<div class="body-content">
<div class="communities-list">
Expand Down
10 changes: 5 additions & 5 deletions apps/juxtaposition-ui/src/webfiles/ctr/css/juxt.css

Large diffs are not rendered by default.

1 change: 0 additions & 1 deletion apps/juxtaposition-ui/src/webfiles/ctr/first_run.ejs
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,6 @@
cave.toolbar_setCallback(99, back);
}
cave.transition_end();
initNewPost();
}
}
</script>
Expand Down
Binary file not shown.
Binary file not shown.
Loading