refactor: disable api routes for macrolanguages

This commit is contained in:
Adaline Simonian 2025-01-16 14:24:49 -08:00
parent bbc9400f0b
commit e275e6e1ae
No known key found for this signature in database
2 changed files with 40 additions and 24 deletions

View File

@ -1,18 +1,13 @@
<script setup lang="ts">
import { clearUrl } from '../src/helpers.ts';
import { useRoute, useNuxtApp, useRouter } from '#app';
import { useRoute, useNuxtApp } from '#app';
import useConfig from '~/composables/useConfig.ts';
import useSimpleHead from '~/composables/useSimpleHead.ts';
const { $locales: locales, $t, $translator: translator } = useNuxtApp();
const router = useRouter();
const config = useConfig();
if (!config.macrolanguage?.enabled) {
router.push('/');
}
const route = useRoute();
useSimpleHead({
@ -20,6 +15,15 @@ useSimpleHead({
description: translator.translate('macrolanguage.prompt'),
}, translator);
definePageMeta({
translatedPaths: (config) => {
if (!config.macrolanguage?.enabled) {
return [];
}
return ['/langswitch'];
},
});
const getSanitizedReturnPath = (): string => {
const returnPath = route.query.return;

View File

@ -1,3 +1,5 @@
import fs from 'fs';
import * as Sentry from '@sentry/node';
import type { StartSpanOptions } from '@sentry/types';
import express from 'express';
@ -40,8 +42,13 @@ import translationsRoute from './express/translations.ts';
import userRoute from './express/user.ts';
import { config } from './social.ts';
import type { Config } from '~/locale/config.ts';
import { closeAuditLogConnection } from '~/server/audit.ts';
import useAuthentication from '~/server/utils/useAuthentication.ts';
import SUML from 'suml';
const localeConfig = new SUML()
.parse(fs.readFileSync('./data/config.suml', 'utf-8')) as Config;
const MemoryStore = memorystore(session);
@ -147,25 +154,28 @@ router.use(grant.express()(config));
router.use(homeRoute);
router.use(bannerRoute);
router.use(userRoute);
router.use(profileRoute);
router.use(adminRoute);
router.use(mfaRoute);
router.use(pronounsRoute);
router.use(sourcesRoute);
router.use(nounsRoute);
router.use(inclusiveRoute);
router.use(termsRoute);
router.use(pronounceRoute);
router.use(censusRoute);
router.use(namesRoute);
router.use(imagesRoute);
router.use(calendarRoute);
router.use(translationsRoute);
router.use(subscriptionRoute);
router.use(discord);
router.use(sentryRoute);
if (!localeConfig.macrolanguage?.enabled) {
router.use(userRoute);
router.use(profileRoute);
router.use(adminRoute);
router.use(mfaRoute);
router.use(pronounsRoute);
router.use(sourcesRoute);
router.use(nounsRoute);
router.use(inclusiveRoute);
router.use(termsRoute);
router.use(pronounceRoute);
router.use(censusRoute);
router.use(namesRoute);
router.use(imagesRoute);
router.use(calendarRoute);
router.use(translationsRoute);
router.use(subscriptionRoute);
router.use(discord);
}
router.use((err: Error, req: Request, res: Response, _next: NextFunction) => {
console.error(formatError(err, req));
res.status(500).send('Unexpected server error');
@ -173,4 +183,6 @@ router.use((err: Error, req: Request, res: Response, _next: NextFunction) => {
closeAuditLogConnection();
});
router.use((_req, res) => res.status(404).send('Not found'));
export default useBase('/api', defineExpressHandler(router));