From 7867afdaec7f6b054b037739181c5449f937d467 Mon Sep 17 00:00:00 2001 From: Borgal Date: Mon, 2 Feb 2026 12:52:54 +0100 Subject: [PATCH] =?UTF-8?q?v1.3.2=20-=20Abwesenheiten=20=C3=BCberarbeitet?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vacation.php | 83 +++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 79 insertions(+), 4 deletions(-) diff --git a/vacation.php b/vacation.php index fda02a6..2083851 100755 --- a/vacation.php +++ b/vacation.php @@ -51,9 +51,15 @@ if (isset($_GET['action']) && $_GET['action'] == 'delete' && isset($_GET['id'])) } } -// --- Daten laden --- +// --- Eigene Abwesenheiten (nur aktuell oder zukünftig) --- $vacations = []; -$stmt = mysqli_prepare($conn, "SELECT id, start_date, end_date FROM vacations WHERE user_id = ? ORDER BY start_date DESC"); +$stmt = mysqli_prepare($conn, " + SELECT id, start_date, end_date + FROM vacations + WHERE user_id = ? + AND end_date >= CURDATE() + ORDER BY start_date ASC +"); if ($stmt) { mysqli_stmt_bind_param($stmt, "i", $logged_in_user_id); mysqli_stmt_execute($stmt); @@ -64,6 +70,38 @@ if ($stmt) { mysqli_stmt_close($stmt); } +// --- Prüfen, ob Admin --- +$is_admin = false; +$stmt = mysqli_prepare($conn, "SELECT role FROM users WHERE id = ?"); +if ($stmt) { + mysqli_stmt_bind_param($stmt, "i", $logged_in_user_id); + mysqli_stmt_execute($stmt); + $result = mysqli_stmt_get_result($stmt); + $user = mysqli_fetch_assoc($result); + $is_admin = ($user && $user['role'] === 'admin'); + mysqli_stmt_close($stmt); +} + +// --- Alle Abwesenheiten (nur aktuell oder zukünftig, nur für Admins) --- +$all_vacations = []; +if ($is_admin) { + $stmt = mysqli_prepare($conn, " + SELECT v.id, v.start_date, v.end_date, u.username + FROM vacations v + JOIN users u ON v.user_id = u.id + WHERE v.end_date >= CURDATE() + ORDER BY v.start_date ASC, u.username ASC + "); + if ($stmt) { + mysqli_stmt_execute($stmt); + $result = mysqli_stmt_get_result($stmt); + while ($row = mysqli_fetch_assoc($result)) { + $all_vacations[] = $row; + } + mysqli_stmt_close($stmt); + } +} + require_once 'inc/header.php'; ?> @@ -79,6 +117,7 @@ require_once 'inc/header.php';

Abwesenheitsassistent

+

Urlaub eintragen

@@ -103,13 +142,14 @@ require_once 'inc/header.php';
+

Eingetragene Urlaube

-

Es sind keine Urlaube eingetragen.

+

Es sind keine aktuellen oder zukünftigen Urlaube eingetragen.

@@ -132,7 +172,9 @@ require_once 'inc/header.php';
+ + + + + + + + + + + + + + +
NutzerZeitraum
+ Vom + bis +
+
+
+
+ + \ No newline at end of file