diff --git a/server/src/metadata/object-metadata/hooks/before-create-one-object.hook.ts b/server/src/metadata/object-metadata/hooks/before-create-one-object.hook.ts index bd51df233..b8ce7b638 100644 --- a/server/src/metadata/object-metadata/hooks/before-create-one-object.hook.ts +++ b/server/src/metadata/object-metadata/hooks/before-create-one-object.hook.ts @@ -1,4 +1,8 @@ -import { Injectable, UnauthorizedException } from '@nestjs/common'; +import { + ForbiddenException, + Injectable, + UnauthorizedException, +} from '@nestjs/common'; import { BeforeCreateOneHook, @@ -7,6 +11,8 @@ import { import { CreateObjectInput } from 'src/metadata/object-metadata/dtos/create-object.input'; +const coreObjectNames = ['featureFlag', 'refreshToken', 'workspace', 'user']; + @Injectable() export class BeforeCreateOneObject implements BeforeCreateOneHook @@ -21,6 +27,14 @@ export class BeforeCreateOneObject throw new UnauthorizedException(); } + if ( + coreObjectNames.includes(instance.input.nameSingular) || + coreObjectNames.includes(instance.input.namePlural) + ) { + throw new ForbiddenException( + 'You cannot create an object with this name.', + ); + } instance.input.workspaceId = workspaceId; return instance; }