260322:1648 Correct Coresspondence / Doing RFA / Correct CI
CI Pipeline / build (push) Failing after 12m41s
Build and Deploy / deploy (push) Failing after 2m44s

This commit is contained in:
admin
2026-03-22 16:48:12 +07:00
parent e5deedb42e
commit 11984bfa29
683 changed files with 105251 additions and 29068 deletions
@@ -22,14 +22,14 @@ export class MaintenanceModeGuard implements CanActivate {
constructor(
private reflector: Reflector,
@Inject(CACHE_MANAGER) private cacheManager: Cache,
@Inject(CACHE_MANAGER) private cacheManager: Cache
) {}
async canActivate(context: ExecutionContext): Promise<boolean> {
// 1. ตรวจสอบว่า Route นี้ได้รับการยกเว้นหรือไม่ (Bypass)
const isBypassed = this.reflector.getAllAndOverride<boolean>(
BYPASS_MAINTENANCE_KEY,
[context.getHandler(), context.getClass()],
[context.getHandler(), context.getClass()]
);
if (isBypassed) {
@@ -43,12 +43,12 @@ export class MaintenanceModeGuard implements CanActivate {
// ถ้า Redis มีค่าเป็น true หรือ string "true" ให้ Block
if (isMaintenanceOn === true || isMaintenanceOn === 'true') {
// (Optional) 3. ตรวจสอบ Backdoor Header สำหรับ Admin (ถ้าต้องการ Bypass ฉุกเฉิน)
const request = context.switchToHttp().getRequest();
const request = context.switchToHttp().getRequest<{ url: string }>();
// const bypassToken = request.headers['x-maintenance-bypass'];
// if (bypassToken === process.env.ADMIN_SECRET) return true;
this.logger.warn(
`Blocked request to ${request.url} due to Maintenance Mode`,
`Blocked request to ${request.url} due to Maintenance Mode`
);
throw new ServiceUnavailableException({
+7 -1
View File
@@ -7,6 +7,11 @@ import {
import { Reflector } from '@nestjs/core';
import { PERMISSIONS_KEY } from '../decorators/require-permission.decorator';
import { UserService } from '../../modules/user/user.service';
import { User } from '../../modules/user/entities/user.entity';
interface RequestWithUser {
user?: User;
}
@Injectable()
export class RbacGuard implements CanActivate {
@@ -28,7 +33,8 @@ export class RbacGuard implements CanActivate {
}
// 2. ดึง User จาก Request (ที่ JwtAuthGuard แปะไว้ให้)
const { user } = context.switchToHttp().getRequest();
const request = context.switchToHttp().getRequest<RequestWithUser>();
const user = request.user;
if (!user) {
throw new ForbiddenException('User not found in request');
}