Yuki Takei 1 год назад
Родитель
Сommit
73c625accd
1 измененных файлов с 9 добавлено и 5 удалено
  1. 9 5
      packages/core/src/models/serializers/user-serializer.ts

+ 9 - 5
packages/core/src/models/serializers/user-serializer.ts

@@ -1,6 +1,7 @@
-import type { IUser } from '~/interfaces';
+import { isPopulated, type Ref } from '../../interfaces/common';
+import type { IUser } from '../../interfaces/user';
 
 
-type IUserSerializedSecurely = Omit<IUser, 'password' | 'apiToken' | 'email'> & { email?: string };
+export type IUserSerializedSecurely = Omit<IUser, 'password' | 'apiToken' | 'email'> & { email?: string };
 
 
 export const omitInsecureAttributes = (user: IUser): IUserSerializedSecurely => {
 export const omitInsecureAttributes = (user: IUser): IUserSerializedSecurely => {
   // eslint-disable-next-line @typescript-eslint/no-unused-vars
   // eslint-disable-next-line @typescript-eslint/no-unused-vars
@@ -16,11 +17,14 @@ export const omitInsecureAttributes = (user: IUser): IUserSerializedSecurely =>
   return secureUser;
   return secureUser;
 };
 };
 
 
-export const serializeUserSecurely = (user?: IUser | null): Partial<IUser> | null | undefined => {
+export const serializeUserSecurely = (user?: Ref<IUser>): Ref<IUserSerializedSecurely> | undefined => {
   // return when it is not a user object
   // return when it is not a user object
-  if (user == null || !('username' in user)) {
+  if (user == null || !isPopulated(user)) {
     return user;
     return user;
   }
   }
 
 
-  return omitInsecureAttributes(user);
+  return {
+    _id: user._id,
+    ...omitInsecureAttributes(user),
+  };
 };
 };