Files
2026-09-16 23:20:08 +07:00

32 lines
876 B
PHP

<?php
namespace App\Middleware;
use App\Helpers\Response;
/**
* Class RoleGuard
* Role-Based Access Control (RBAC) Guard Middleware
*
* @package App\Middleware
*/
class RoleGuard
{
/**
* Verify if current authenticated user has one of the required roles
*
* @param array $allowedRoles e.g. ['Admin', 'Manager', 'Doctor']
*/
public static function check(array $allowedRoles): void
{
if (session_status() === PHP_SESSION_NONE) {
session_start();
}
$userRole = $_SESSION['user_role'] ?? null;
if (!$userRole || !in_array($userRole, $allowedRoles, true)) {
Response::error("Forbidden: Your role ({$userRole}) does not have permission to access this resource (คุณไม่มีสิทธิ์เข้าถึงฟังก์ชันนี้)", 403);
}
}
}