Răsfoiți Sursa

use serializeUserSecurely

Yuki Takei 1 an în urmă
părinte
comite
776a84ee64

+ 4 - 0
packages/core/package.json

@@ -30,6 +30,10 @@
       "import": "./dist/models/index.js",
       "require": "./dist/models/index.cjs"
     },
+    "./dist/models/serializers": {
+      "import": "./dist/models/serializers/index.js",
+      "require": "./dist/models/serializers/index.cjs"
+    },
     "./dist/remark-plugins": {
       "import": "./dist/remark-plugins/index.js",
       "require": "./dist/remark-plugins/index.cjs"

+ 2 - 0
packages/core/src/models/serializers/index.ts

@@ -0,0 +1,2 @@
+export * from './user-serializer';
+export * from './attachment-serializer';

+ 4 - 17
packages/remark-attachment-refs/src/server/routes/refs.ts

@@ -1,5 +1,5 @@
-import type { IPage, IUser } from '@growi/core';
-import { type IAttachment } from '@growi/core';
+import type { IPage, IUser, IAttachment } from '@growi/core';
+import { serializeAttachmentSecurely } from '@growi/core/dist/models/serializers';
 import { OptionParser } from '@growi/core/dist/remark-plugins';
 import type { Request } from 'express';
 import { Router } from 'express';
@@ -24,13 +24,10 @@ export const routesFactory = (crowi): any => {
   const loginRequired = crowi.require('../middlewares/login-required')(crowi, true, loginRequiredFallback);
   const accessTokenParser = crowi.require('../middlewares/access-token-parser')(crowi);
 
-  const { serializeUserSecurely } = crowi.require('../models/serializers/user-serializer');
-
   const router = Router();
 
   const ObjectId = Types.ObjectId;
 
-  const User = mongoose.model('User');
   const Page = mongoose.model <HydratedDocument<IPage>, Model<any> & any>('Page');
 
   // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -133,10 +130,7 @@ export const routesFactory = (crowi): any => {
       return;
     }
 
-    // serialize User data
-    attachment.creator = serializeUserSecurely(attachment.creator);
-
-    res.status(200).send({ attachment });
+    res.status(200).send({ attachment: serializeAttachmentSecurely(attachment) });
   });
 
   /**
@@ -215,14 +209,7 @@ export const routesFactory = (crowi): any => {
       .populate('creator')
       .exec();
 
-    // serialize User data
-    attachments.forEach((doc) => {
-      if (doc.creator != null && doc.creator instanceof User) {
-        doc.creator = serializeUserSecurely(doc.creator);
-      }
-    });
-
-    res.status(200).send({ attachments });
+    res.status(200).send({ attachments: attachments.map(attachment => serializeAttachmentSecurely(attachment)) });
   });
 
   return router;