From c6f682310cc16afaaefc6cafec2f32edbad4e39a Mon Sep 17 00:00:00 2001 From: Finley Ge <32237950+FinleyGe@users.noreply.github.com> Date: Mon, 22 Jul 2024 17:27:48 +0800 Subject: [PATCH] fix resource permission schema (#2116) * fix: resource permission schema * fix: ResorceType --- packages/global/support/permission/type.d.ts | 4 +++- packages/service/support/permission/schema.ts | 7 ++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/global/support/permission/type.d.ts b/packages/global/support/permission/type.d.ts index 9f99c51ba..cc51f9a2d 100644 --- a/packages/global/support/permission/type.d.ts +++ b/packages/global/support/permission/type.d.ts @@ -1,11 +1,13 @@ import { TeamMemberWithUserSchema } from '../user/team/type'; -import { AuthUserTypeEnum, PermissionKeyEnum } from './constant'; +import { AuthUserTypeEnum, PermissionKeyEnum, PerResourceTypeEnum } from './constant'; // PermissionValueType, the type of permission's value is a number, which is a bit field actually. // It is spired by the permission system in Linux. // The lowest 3 bits present the permission of reading, writing and managing. // The higher bits are advanced permissions or extended permissions, which could be customized. export type PermissionValueType = number; +export type ResourceType = `${PerResourceTypeEnum}`; + export type PermissionListType = Record< T | PermissionKeyEnum, { diff --git a/packages/service/support/permission/schema.ts b/packages/service/support/permission/schema.ts index 8902fd6b8..3a6a2ab9a 100644 --- a/packages/service/support/permission/schema.ts +++ b/packages/service/support/permission/schema.ts @@ -2,10 +2,10 @@ import { TeamCollectionName, TeamMemberCollectionName } from '@fastgpt/global/support/user/team/constant'; -import { Model, connectionMongo, getMongoModel } from '../../common/mongo'; +import { connectionMongo, getMongoModel } from '../../common/mongo'; import type { ResourcePermissionType } from '@fastgpt/global/support/permission/type'; import { PerResourceTypeEnum } from '@fastgpt/global/support/permission/constant'; -const { Schema, model, models } = connectionMongo; +const { Schema } = connectionMongo; export const ResourcePermissionCollectionName = 'resource_permission'; @@ -19,7 +19,8 @@ export const ResourcePermissionSchema = new Schema({ ref: TeamMemberCollectionName }, resourceType: { - type: Object.values(PerResourceTypeEnum), + type: String, + enum: Object.values(PerResourceTypeEnum), required: true }, permission: {