Scope server with workspace (#157)

* Rename User to AuthUser to avoid naming conflict with user business entity

* Prevent query by workspace in graphql

* Make full user and workspace object available in graphql resolvers

* Add Seed to create companies and people accross two workspace

* Check workspace on all entities findMany, find, create, update)
This commit is contained in:
Charles Bochet
2023-05-30 20:40:04 +02:00
committed by GitHub
parent 0f9c6dede7
commit 3674365e6f
47 changed files with 380 additions and 483 deletions

View File

@ -35,6 +35,7 @@ model User {
@@map("users")
}
/// @TypeGraphQL.omit(input: true)
model Workspace {
id String @id
createdAt DateTime @default(now())
@ -57,7 +58,9 @@ model WorkspaceMember {
deletedAt DateTime?
userId String @unique
user User @relation(fields: [userId], references: [id])
/// @TypeGraphQL.omit(input: true)
workspaceId String
/// @TypeGraphQL.omit(input: true)
workspace Workspace @relation(fields: [workspaceId], references: [id])
@@map("workspace_members")
@ -105,6 +108,7 @@ model Person {
@@map("people")
}
/// @TypeGraphQL.omit(input: true)
model RefreshToken {
id String @id
createdAt DateTime @default(now())

View File

@ -147,4 +147,16 @@ export const seedCompanies = async (prisma: PrismaClient) => {
address: '',
},
});
await prisma.company.upsert({
where: { id: 'a674fa6c-1455-4c57-afaf-dd5dc086361e' },
update: {},
create: {
id: 'a674fa6c-1455-4c57-afaf-dd5dc086361e',
name: 'Instagram',
domainName: 'instagram.com',
workspaceId: '7ed9d212-1c25-4d02-bf25-6aeccf7ea420',
address: '',
},
});
};

View File

@ -209,4 +209,19 @@ export const seedPeople = async (prisma: PrismaClient) => {
email: 'louis.duss@google.com',
},
});
await prisma.person.upsert({
where: { id: '240da2ec-2d40-4e49-8df4-9c6a049190dh' },
update: {},
create: {
id: '240da2ec-2d40-4e49-8df4-9c6a049190dh',
firstname: 'Lorie',
lastname: 'Vladim',
workspaceId: '7ed9d212-1c25-4d02-bf25-6aeccf7ea420',
phone: '+33788901235',
city: 'Seattle',
companyId: 'a674fa6c-1455-4c57-afaf-dd5dc086361e',
email: 'lorie.vladim@google.com',
},
});
};