mirror of
https://github.com/swissmakers/swiss-datashare.git
synced 2026-04-17 04:33:15 +02:00
feat: add administrator guard
This commit is contained in:
@@ -12,10 +12,11 @@ model User {
|
|||||||
createdAt DateTime @default(now())
|
createdAt DateTime @default(now())
|
||||||
updatedAt DateTime @updatedAt
|
updatedAt DateTime @updatedAt
|
||||||
|
|
||||||
email String @unique
|
email String @unique
|
||||||
password String
|
password String
|
||||||
firstName String?
|
isAdministrator Boolean @default(false)
|
||||||
lastName String?
|
firstName String?
|
||||||
|
lastName String?
|
||||||
|
|
||||||
shares Share[]
|
shares Share[]
|
||||||
refreshTokens RefreshToken[]
|
refreshTokens RefreshToken[]
|
||||||
|
|||||||
10
backend/src/auth/guard/isAdmin.guard.ts
Normal file
10
backend/src/auth/guard/isAdmin.guard.ts
Normal file
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user