From 7b249729001d24d9f1468abdc6fc47fe5205f39b Mon Sep 17 00:00:00 2001 From: Hariom Balhara Date: Mon, 15 Jul 2024 11:41:24 +0530 Subject: [PATCH] fix: Ensure unique username in an organization (#15730) --- .../20240711080953_unique_username_in_org/migration.sql | 8 ++++++++ packages/prisma/schema.prisma | 4 ++++ 2 files changed, 12 insertions(+) create mode 100644 packages/prisma/migrations/20240711080953_unique_username_in_org/migration.sql diff --git a/packages/prisma/migrations/20240711080953_unique_username_in_org/migration.sql b/packages/prisma/migrations/20240711080953_unique_username_in_org/migration.sql new file mode 100644 index 0000000000..39d5fcb436 --- /dev/null +++ b/packages/prisma/migrations/20240711080953_unique_username_in_org/migration.sql @@ -0,0 +1,8 @@ +/* + Warnings: + + - A unique constraint covering the columns `[username,organizationId]` on the table `Profile` will be added. If there are existing duplicate values, this will fail. + +*/ +-- CreateIndex +CREATE UNIQUE INDEX "Profile_username_organizationId_key" ON "Profile"("username", "organizationId"); diff --git a/packages/prisma/schema.prisma b/packages/prisma/schema.prisma index 62c9432f2c..ae5a0d9cba 100644 --- a/packages/prisma/schema.prisma +++ b/packages/prisma/schema.prisma @@ -349,7 +349,11 @@ model Profile { createdAt DateTime @default(now()) updatedAt DateTime @updatedAt + // A user can have multiple profiles in different organizations @@unique([userId, organizationId]) + // Allow username reuse only across different organizations + @@unique([username, organizationId]) + @@index([uid]) @@index([userId]) @@index([organizationId])