Просмотр исходного кода

Redirect to '/' if already installed

Shun Miyazawa 3 лет назад
Родитель
Сommit
6154c5fdb5
1 измененных файлов с 12 добавлено и 0 удалено
  1. 12 0
      packages/app/src/pages/installer.page.tsx

+ 12 - 0
packages/app/src/pages/installer.page.tsx

@@ -7,6 +7,7 @@ import {
 import { serverSideTranslations } from 'next-i18next/serverSideTranslations';
 
 import { NoLoginLayout } from '~/components/Layout/NoLoginLayout';
+import { CrowiRequest } from '~/interfaces/crowi-request';
 
 import InstallerForm from '../components/InstallerForm';
 import {
@@ -53,6 +54,17 @@ const InstallerPage: NextPage<Props> = (props: Props) => {
 export const getServerSideProps: GetServerSideProps = async(context: GetServerSidePropsContext) => {
   const result = await getServerSideCommonProps(context);
 
+  const req = context.req as CrowiRequest;
+  const isInstalled = req.crowi.configManager.getConfig('crowi', 'app:installed');
+  if (isInstalled) {
+    return {
+      redirect: {
+        permanent: false,
+        destination: '/',
+      },
+    };
+  }
+
   // check for presence
   // see: https://github.com/vercel/next.js/issues/19271#issuecomment-730006862
   if (!('props' in result)) {