28 lines
747 B
PHP
28 lines
747 B
PHP
<?php
|
|
|
|
function hasPermission(int $userId, string $resourceName, string $actionName): bool
|
|
{
|
|
global $conn;
|
|
$sql = "
|
|
SELECT COUNT(*) AS permission_count
|
|
FROM users u
|
|
JOIN group_permissions gp ON gp.group_id = u.group_id
|
|
JOIN resources r ON r.resource_id = gp.resource_id
|
|
JOIN actions a ON a.action_id = gp.action_id
|
|
WHERE u.user_id = :userId
|
|
AND r.name = :resourceName
|
|
AND a.name = :actionName
|
|
";
|
|
|
|
$stmt = $conn->prepare($sql);
|
|
$stmt->execute([
|
|
':userId' => $userId,
|
|
':resourceName' => $resourceName,
|
|
':actionName' => $actionName,
|
|
]);
|
|
|
|
$result = $stmt->fetch();
|
|
|
|
return ((int) $result['permission_count']) > 0;
|
|
}
|