Files
few-line-engine/src/api/guards/admin.guard.ts

28 lines
626 B
TypeScript

import {
CanActivate,
ExecutionContext,
Inject,
Injectable,
UnauthorizedException,
} from "@nestjs/common";
import { ApiService } from "../api.service";
@Injectable()
export class AdminGuard implements CanActivate {
constructor(
@Inject(ApiService)
private readonly apiService: ApiService
) {}
async canActivate(context: ExecutionContext): Promise<boolean> {
const request = context.switchToHttp().getRequest();
const apiToken = request.apiToken;
if (!apiToken || !apiToken.isAdmin) {
throw new UnauthorizedException("Admin privileges are required");
}
return true;
}
}