This commit is contained in:
2026-09-07 22:13:43 +02:00
commit 3887faa43c
7 changed files with 132 additions and 0 deletions
+4
View File
@@ -0,0 +1,4 @@
<?php
include './connection.php';
include './user.php';
+17
View File
@@ -0,0 +1,17 @@
<?php
$servername = $_ENV['DB_SERVERNAME'];
$username = $_ENV['DB_USERNAME'];
$password = $_ENV['DB_PASS'];
$dbname = $_ENV['DB_NAME'];
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$conn->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
$conn->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
} catch(PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
+29
View File
@@ -0,0 +1,29 @@
<?php
include_once './connection.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;
}