feat: implement AdminGuard and QueryGuard for enhanced access control; refactor API and query handling; add deleteQuery method in QueryHandlerService; update QueryResponse type for improved response handling

This commit is contained in:
Boris D
2025-10-10 11:54:30 +03:00
parent ca134414b0
commit 5a15833080
8 changed files with 71 additions and 9 deletions

View File

@ -0,0 +1,27 @@
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;
}
}