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

Merge pull request #9500 from weseek/support/new-config-manager

support: New config manager (2)
Yuki Takei 1 год назад
Родитель
Сommit
fcad7fb9a9

+ 1 - 0
apps/app/src/pages/[[...path]].page.tsx

@@ -45,6 +45,7 @@ import {
   useIsUploadAllFileAllowed, useIsUploadEnabled,
   useElasticsearchMaxBodyLengthToIndex,
   useIsLocalAccountRegistrationEnabled,
+  useIsRomUserAllowedToComment,
   useIsAiEnabled,
 } from '~/stores-universal/context';
 import { useEditingMarkdown } from '~/stores/editor';

+ 7 - 9
apps/app/src/server/service/config-manager/config-definition.ts

@@ -78,7 +78,6 @@ export const CONFIG_KEYS = [
   'security:wikiMode',
   'security:sessionMaxAge',
   'security:userUpperLimit',
-  'security:disableLinkSharing',
   'security:trustProxyBool',
   'security:trustProxyCsv',
   'security:trustProxyHops',
@@ -100,6 +99,7 @@ export const CONFIG_KEYS = [
   'security:passport-oidc:discoveryRetries',
   'security:passport-oidc:oidcClientClockTolerance',
   'security:passport-oidc:oidcIssuerTimeoutOption',
+  'security:disableLinkSharing',
   'security:restrictGuestMode',
   'security:registrationMode',
   'security:registrationWhitelist',
@@ -359,6 +359,9 @@ export const CONFIG_DEFINITIONS = {
   'app:fileUpload': defineConfig<boolean>({
     defaultValue: false,
   }),
+  'app:fileUploadDisabled': defineConfig<boolean>({
+    defaultValue: false,
+  }),
   'app:fileUploadType': defineConfig<AttachmentMethodType>({
     envVarName: 'FILE_UPLOAD',
     defaultValue: AttachmentMethodType.aws,
@@ -395,10 +398,6 @@ export const CONFIG_DEFINITIONS = {
     envVarName: 'FILE_UPLOAD_TOTAL_LIMIT',
     defaultValue: Infinity,
   }),
-  'app:fileUploadDisabled': defineConfig<boolean>({
-    envVarName: 'FILE_UPLOAD_DISABLED',
-    defaultValue: false,
-  }),
   'app:elasticsearchVersion': defineConfig<number>({
     envVarName: 'ELASTICSEARCH_VERSION',
     defaultValue: 8,
@@ -514,10 +513,6 @@ export const CONFIG_DEFINITIONS = {
     envVarName: 'USER_UPPER_LIMIT',
     defaultValue: Infinity,
   }),
-  'security:disableLinkSharing': defineConfig<boolean>({
-    envVarName: 'DISABLE_LINK_SHARING',
-    defaultValue: false,
-  }),
   'security:trustProxyBool': defineConfig<boolean | undefined>({
     envVarName: 'TRUST_PROXY_BOOL',
     defaultValue: undefined,
@@ -605,6 +600,9 @@ export const CONFIG_DEFINITIONS = {
     envVarName: 'OIDC_ISSUER_TIMEOUT_OPTION',
     defaultValue: 5000,
   }),
+  'security:disableLinkSharing': defineConfig<boolean>({
+    defaultValue: false,
+  }),
   'security:restrictGuestMode': defineConfig<string>({
     defaultValue: 'Deny',
   }),

+ 7 - 6
apps/app/src/server/service/installer.ts

@@ -11,7 +11,6 @@ import mongoose from 'mongoose';
 import loggerFactory from '~/utils/logger';
 
 import type Crowi from '../crowi';
-import { generateConfigsForInstalling } from '../models/config';
 
 import { configManager } from './config-manager';
 
@@ -112,14 +111,16 @@ export class InstallerService {
    * Execute only once for installing application
    */
   private async initDB(globalLang: Lang, options?: AutoInstallOptions): Promise<void> {
-    const initialConfig = generateConfigsForInstalling();
-    initialConfig['app:globalLang'] = globalLang;
+    await configManager.updateConfigs({
+      'app:installed': true,
+      'app:fileUpload': true,
+      'app:isV5Compatible': true,
+      'app:globalLang': globalLang,
+    }, { skipPubsub: true });
 
     if (options?.allowGuestMode) {
-      initialConfig['security:restrictGuestMode'] = 'Readonly';
+      await configManager.updateConfig('security:restrictGuestMode', 'Readonly', { skipPubsub: true });
     }
-
-    return configManager.updateConfigs(initialConfig, { skipPubsub: true });
   }
 
   async install(firstAdminUserToSave: Pick<IUser, 'name' | 'username' | 'email' | 'password'>, globalLang: Lang, options?: AutoInstallOptions): Promise<IUser> {