mirror of
https://gitlab.com/PronounsPage/PronounsPage.git
synced 2025-09-23 20:54:48 -04:00
refactor: disable api routes for macrolanguages
This commit is contained in:
parent
bbc9400f0b
commit
e275e6e1ae
@ -1,18 +1,13 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { clearUrl } from '../src/helpers.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 useConfig from '~/composables/useConfig.ts';
|
||||||
import useSimpleHead from '~/composables/useSimpleHead.ts';
|
import useSimpleHead from '~/composables/useSimpleHead.ts';
|
||||||
|
|
||||||
const { $locales: locales, $t, $translator: translator } = useNuxtApp();
|
const { $locales: locales, $t, $translator: translator } = useNuxtApp();
|
||||||
const router = useRouter();
|
|
||||||
const config = useConfig();
|
const config = useConfig();
|
||||||
|
|
||||||
if (!config.macrolanguage?.enabled) {
|
|
||||||
router.push('/');
|
|
||||||
}
|
|
||||||
|
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
|
|
||||||
useSimpleHead({
|
useSimpleHead({
|
||||||
@ -20,6 +15,15 @@ useSimpleHead({
|
|||||||
description: translator.translate('macrolanguage.prompt'),
|
description: translator.translate('macrolanguage.prompt'),
|
||||||
}, translator);
|
}, translator);
|
||||||
|
|
||||||
|
definePageMeta({
|
||||||
|
translatedPaths: (config) => {
|
||||||
|
if (!config.macrolanguage?.enabled) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
return ['/langswitch'];
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
const getSanitizedReturnPath = (): string => {
|
const getSanitizedReturnPath = (): string => {
|
||||||
const returnPath = route.query.return;
|
const returnPath = route.query.return;
|
||||||
|
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
import fs from 'fs';
|
||||||
|
|
||||||
import * as Sentry from '@sentry/node';
|
import * as Sentry from '@sentry/node';
|
||||||
import type { StartSpanOptions } from '@sentry/types';
|
import type { StartSpanOptions } from '@sentry/types';
|
||||||
import express from 'express';
|
import express from 'express';
|
||||||
@ -40,8 +42,13 @@ import translationsRoute from './express/translations.ts';
|
|||||||
import userRoute from './express/user.ts';
|
import userRoute from './express/user.ts';
|
||||||
import { config } from './social.ts';
|
import { config } from './social.ts';
|
||||||
|
|
||||||
|
import type { Config } from '~/locale/config.ts';
|
||||||
import { closeAuditLogConnection } from '~/server/audit.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);
|
const MemoryStore = memorystore(session);
|
||||||
|
|
||||||
@ -147,25 +154,28 @@ router.use(grant.express()(config));
|
|||||||
|
|
||||||
router.use(homeRoute);
|
router.use(homeRoute);
|
||||||
router.use(bannerRoute);
|
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);
|
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) => {
|
router.use((err: Error, req: Request, res: Response, _next: NextFunction) => {
|
||||||
console.error(formatError(err, req));
|
console.error(formatError(err, req));
|
||||||
res.status(500).send('Unexpected server error');
|
res.status(500).send('Unexpected server error');
|
||||||
@ -173,4 +183,6 @@ router.use((err: Error, req: Request, res: Response, _next: NextFunction) => {
|
|||||||
closeAuditLogConnection();
|
closeAuditLogConnection();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
router.use((_req, res) => res.status(404).send('Not found'));
|
||||||
|
|
||||||
export default useBase('/api', defineExpressHandler(router));
|
export default useBase('/api', defineExpressHandler(router));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user