From cd3924b8fc2021d55c0bf9d7381fd31e70cdf115 Mon Sep 17 00:00:00 2001 From: forehalo Date: Wed, 14 Aug 2024 16:37:52 +0800 Subject: [PATCH] Revert "fix(server): redirect to setup page if not initialized (#7871)" This reverts commit 42b5ef7a8b12cb277f6255b5ca520a8828cb03ad. --- packages/backend/server/src/app.module.ts | 27 ++++---------- .../backend/server/src/core/setup/index.ts | 35 +------------------ 2 files changed, 8 insertions(+), 54 deletions(-) diff --git a/packages/backend/server/src/app.module.ts b/packages/backend/server/src/app.module.ts index 11be39973..ac80a5780 100644 --- a/packages/backend/server/src/app.module.ts +++ b/packages/backend/server/src/app.module.ts @@ -1,13 +1,10 @@ -import { join, resolve } from 'node:path'; -import { fileURLToPath } from 'node:url'; +import { join } from 'node:path'; import { DynamicModule, ForwardReference, Logger, - MiddlewareConsumer, Module, - NestModule, } from '@nestjs/common'; import { ScheduleModule } from '@nestjs/schedule'; import { ServeStaticModule } from '@nestjs/serve-static'; @@ -19,7 +16,7 @@ import { ADD_ENABLED_FEATURES, ServerConfigModule } from './core/config'; import { DocModule } from './core/doc'; import { FeatureModule } from './core/features'; import { QuotaModule } from './core/quota'; -import { CustomSetupModule, SetupMiddleware } from './core/setup'; +import { CustomSetupModule } from './core/setup'; import { StorageModule } from './core/storage'; import { SyncModule } from './core/sync'; import { UserModule } from './core/user'; @@ -138,26 +135,16 @@ export class AppModuleBuilder { } compile() { - const configure = (consumer: MiddlewareConsumer) => { - if (this.config.isSelfhosted) { - consumer.apply(SetupMiddleware).forRoutes('*'); - } - }; - @Module({ imports: this.modules, controllers: this.config.isSelfhosted ? [] : [AppController], }) - class AppModule implements NestModule { - configure = configure; - } + class AppModule {} return AppModule; } } -const pwd = resolve(fileURLToPath(import.meta.url), '../../'); - function buildAppModule() { AFFiNE = mergeConfigOverride(AFFiNE); const factor = new AppModuleBuilder(AFFiNE); @@ -192,12 +179,12 @@ function buildAppModule() { config => config.isSelfhosted, CustomSetupModule, ServeStaticModule.forRoot({ - rootPath: join(pwd, 'static', 'admin'), - renderPath: /^\/admin\/?/, + rootPath: join('/app', 'static'), + exclude: ['/admin*'], }), ServeStaticModule.forRoot({ - rootPath: join(pwd, 'static'), - renderPath: '*', + rootPath: join('/app', 'static', 'admin'), + serveRoot: '/admin', }) ); diff --git a/packages/backend/server/src/core/setup/index.ts b/packages/backend/server/src/core/setup/index.ts index aba4796d0..56fe7cfd7 100644 --- a/packages/backend/server/src/core/setup/index.ts +++ b/packages/backend/server/src/core/setup/index.ts @@ -1,42 +1,9 @@ -import { Injectable, Module, NestMiddleware } from '@nestjs/common'; -import { PrismaClient } from '@prisma/client'; -import type { Request, Response } from 'express'; +import { Module } from '@nestjs/common'; import { AuthModule } from '../auth'; import { UserModule } from '../user'; import { CustomSetupController } from './controller'; -@Injectable() -export class SetupMiddleware implements NestMiddleware { - private initialized: boolean | null = null; - constructor(private readonly db: PrismaClient) {} - - use(req: Request, res: Response, next: (error?: Error | any) => void) { - // never throw - // eslint-disable-next-line @typescript-eslint/no-floating-promises - this.allow().then(allowed => { - if (allowed) { - next(); - } else if (!req.path.startsWith('/admin/setup')) { - res.redirect('/admin/setup'); - } - }); - } - - async allow() { - try { - if (this.initialized === null) { - this.initialized = (await this.db.user.count()) > 0; - } - } catch (e) { - // avoid block the whole app - return true; - } - - return this.initialized; - } -} - @Module({ imports: [AuthModule, UserModule], controllers: [CustomSetupController],