diff --git a/backend/prisma/schema.prisma b/backend/prisma/schema.prisma index 0512c99..bb2b8af 100644 --- a/backend/prisma/schema.prisma +++ b/backend/prisma/schema.prisma @@ -12,10 +12,11 @@ model User { createdAt DateTime @default(now()) updatedAt DateTime @updatedAt - email String @unique - password String - firstName String? - lastName String? + email String @unique + password String + isAdministrator Boolean @default(false) + firstName String? + lastName String? shares Share[] refreshTokens RefreshToken[] diff --git a/backend/src/auth/guard/isAdmin.guard.ts b/backend/src/auth/guard/isAdmin.guard.ts new file mode 100644 index 0000000..b3bf251 --- /dev/null +++ b/backend/src/auth/guard/isAdmin.guard.ts @@ -0,0 +1,10 @@ +import { CanActivate, ExecutionContext, Injectable } from "@nestjs/common"; +import { User } from "@prisma/client"; + +@Injectable() +export class AdministratorGuard implements CanActivate { + canActivate(context: ExecutionContext): boolean { + const { user }: { user: User } = context.switchToHttp().getRequest(); + return user.isAdministrator; + } +}