diff --git a/server/helpers/api-model.ts b/server/helpers/api-model.ts index 95671e93c..f5d824394 100644 --- a/server/helpers/api-model.ts +++ b/server/helpers/api-model.ts @@ -603,6 +603,7 @@ const users = ( refreshToken: item.refreshToken, enabled: item.enabled, isAdmin: item.isAdmin, + isSuperAdmin: item.isSuperAdmin, deviceId: item.deviceId, createdAt: item.createdAt, updatedAt: item.updatedAt, diff --git a/server/middleware/authenticate.ts b/server/middleware/authenticate.ts index bb4ff4f8b..4e05fcc27 100644 --- a/server/middleware/authenticate.ts +++ b/server/middleware/authenticate.ts @@ -57,6 +57,7 @@ export const authenticate = ( flatServerPermissions, id: user?.id, isAdmin: user?.isAdmin, + isSuperAdmin: user?.isSuperAdmin, server: req.params.serverId, serverFolderPermissions: user?.serverFolderPermissions, serverPermissions: user?.serverPermissions, diff --git a/server/prisma/migrations/20221109000936_super_admin_user/migration.sql b/server/prisma/migrations/20221109000936_super_admin_user/migration.sql new file mode 100644 index 000000000..6dcdd014f --- /dev/null +++ b/server/prisma/migrations/20221109000936_super_admin_user/migration.sql @@ -0,0 +1,2 @@ +-- AlterTable +ALTER TABLE "User" ADD COLUMN "isSuperAdmin" BOOLEAN NOT NULL DEFAULT false; diff --git a/server/prisma/schema.prisma b/server/prisma/schema.prisma index 2f497b1fb..809ae293a 100644 --- a/server/prisma/schema.prisma +++ b/server/prisma/schema.prisma @@ -57,15 +57,16 @@ model RefreshToken { } model User { - id String @id @default(dbgenerated("gen_random_uuid()")) @db.Uuid - displayName String? @unique - username String @unique - password String - enabled Boolean @default(false) - isAdmin Boolean @default(false) - deviceId String @unique - createdAt DateTime @default(now()) - updatedAt DateTime @updatedAt + id String @id @default(dbgenerated("gen_random_uuid()")) @db.Uuid + displayName String? @unique + username String @unique + password String + enabled Boolean @default(false) + isAdmin Boolean @default(false) + isSuperAdmin Boolean @default(false) + deviceId String @unique + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt histories History[] albumArtistRatings AlbumArtistRating[] diff --git a/server/prisma/seed.ts b/server/prisma/seed.ts index 388348563..be07d5b3a 100644 --- a/server/prisma/seed.ts +++ b/server/prisma/seed.ts @@ -15,6 +15,7 @@ async function main() { deviceId: `admin_${randomString(10)}`, enabled: true, isAdmin: true, + isSuperAdmin: true, password: hashedPassword, username: 'admin', },