Sfoglia il codice sorgente

Update constant names

arvid-e 6 mesi fa
parent
commit
6b00dd8820

+ 18 - 21
apps/app/src/server/routes/apiv3/content-disposition-settings.ts

@@ -3,7 +3,6 @@ import { ErrorV3 } from '@growi/core/dist/models';
 import { SupportedAction } from '~/interfaces/activity';
 import { generateAddActivityMiddleware } from '~/server/middlewares/add-activity';
 import { configManager } from '~/server/service/config-manager';
-import { strictMimeTypeSettings, laxMimeTypeSettings } from '~/server/service/file-uploader/utils/security';
 import loggerFactory from '~/utils/logger';
 
 const logger = loggerFactory('growi:routes:apiv3:content-disposition-settings');
@@ -17,6 +16,10 @@ module.exports = (crowi) => {
   const addActivity = generateAddActivityMiddleware();
   const activityEvent = crowi.event('activity');
 
+  interface UpdateMimeTypesPayload {
+  newInlineMimeTypes: string[];
+  }
+
   /**
  * @swagger
  *
@@ -34,11 +37,11 @@ module.exports = (crowi) => {
  *             schema:
  *               type: object
  *               properties:
- *                 contentDispositionSettings:
+ *                 currentDispositionSettings:
  *                   type: object
  *                   additionalProperties:
- *                     type: string
- *                     description: inline or attachment
+ *                     type: string[]
+ *                     description: inline MIME types.
  *
  */
   router.put(
@@ -49,26 +52,21 @@ module.exports = (crowi) => {
     async(req, res) => {
 
       try {
-        const { newInlineMimeTypes } = req.body;
-
-        const currentSettings = await configManager.getConfig('attachments:contentDisposition:mimeTypeOverrides');
-        const currentInlineMimeTypes = currentSettings.inlineMimeTypes || [];
-
-        const updatedInlineMimeTypes = Array.from(new Set([
-          ...currentInlineMimeTypes,
-          ...newInlineMimeTypes,
-        ]));
-
-        await configManager.updateConfigs({ 'attachments:contentDisposition:mimeTypeOverrides': { inlineMimeTypes: updatedInlineMimeTypes } });
+        const { newInlineMimeTypes } = req.body as UpdateMimeTypesPayload;
+        const inlineMimeTypes = Array.from(new Set(newInlineMimeTypes));
+        await configManager.updateConfigs({ 'attachments:contentDisposition:inlineMimeTypes': { inlineMimeTypes } });
 
         const parameters = {
           action: SupportedAction.ACTION_ADMIN_ATTACHMENT_DISPOSITION_UPDATE,
-          contentDispositionSettings: strictMimeTypeSettings,
-          currentMode: 'strict',
+          currentDispositionSettings: inlineMimeTypes,
         };
         activityEvent.emit('update', res.locals.activity._id, parameters);
 
-        return res.apiv3({ currentMode: 'custom', contentDispositionSettings: strictMimeTypeSettings });
+        return res.apiv3({
+          currentDispositionSettings: {
+            inlineMimeTypes,
+          },
+        });
       }
       catch (err) {
         const msg = 'Error occurred in updating content disposition for MIME types';
@@ -106,10 +104,9 @@ module.exports = (crowi) => {
  */
   router.get('/', loginRequiredStrictly, adminRequired, async(req, res) => {
     try {
-      const currentDispositionSettings = configManager.getConfig('attachments:contentDisposition:mimeTypeOverrides');
-      const contentDispositionSettings: Record<string, 'inline' | 'attachment'> = currentDispositionSettings;
+      const currentDispositionSettings = configManager.getConfig('attachments:contentDisposition:inlineMimeTypes');
 
-      return res.apiv3({ contentDispositionSettings });
+      return res.apiv3({ currentDispositionSettings });
     }
     catch (err) {
       logger.error('Error retrieving content disposition settings:', err);

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

@@ -79,7 +79,7 @@ export const CONFIG_KEYS = [
   'app:openaiVectorStoreFileDeletionCronMaxMinutesUntilRequest',
 
   // Content-Disposition settings for MIME types
-  'attachments:contentDisposition:mimeTypeOverrides',
+  'attachments:contentDisposition:inlineMimeTypes',
 
   // Security Settings
   'security:wikiMode',
@@ -542,7 +542,7 @@ export const CONFIG_DEFINITIONS = {
   }),
 
   // Attachment Content-Disposition settings
-  'attachments:contentDisposition:mimeTypeOverrides': defineConfig<{ inlineMimeTypes: string[]; }>({
+  'attachments:contentDisposition:inlineMimeTypes': defineConfig<{ inlineMimeTypes: string[]; }>({
     defaultValue: {
       inlineMimeTypes: [],
     },