$tripId, 'user_id' => $invitedUser['id'], 'access' => $access, 'invited_by' => $user['id']]); $tripUrl = (isset($_SERVER['HTTPS']) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . '/Develop/PlanerGoogel/ablauf.php?trip=' . $tripId; sendAddedToTripMail($invitedUser['email'], $invitedUser['name'], $trip['name'], $tripUrl, $user['name']); } $msg = h($invitedUser['name']) . ' wurde zur Reise hinzugefügt und per E-Mail informiert.'; } else { // Einladungslink erstellen $token = bin2hex(random_bytes(16)); // Alte offene Einladung für diese E-Mail löschen dbExec('DELETE FROM reise_einladungen WHERE trip_id = ? AND email = ? AND used_at IS NULL', [$tripId, $email]); dbInsert('reise_einladungen', ['trip_id' => $tripId, 'email' => $email, 'token' => $token, 'access' => $access, 'invited_by' => $user['id']]); $inviteLink = (isset($_SERVER['HTTPS']) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . '/Develop/PlanerGoogel/login.php?invite=' . $token; $mailSent = sendInviteMail($email, $trip['name'], $inviteLink, $user['name']); $msg = $mailSent ? 'Einladungsmail an ' . h($email) . ' wurde verschickt!' : 'Einladungslink erstellt (E-Mail konnte nicht gesendet werden).
' . h($inviteLink) . ''; } } else { $msg = 'Diese Person ist bereits Mitglied.'; } } } // Zugriff ändern if ($isAdmin && $_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['change_access'])) { $memberId = (int)$_POST['member_id']; $newAccess = $_POST['new_access'] ?? ''; if ($memberId !== $user['id'] && in_array($newAccess, ['see','edit','admin'])) { dbExec('UPDATE reise_zugriff SET access = ? WHERE trip_id = ? AND user_id = ?', [$newAccess, $tripId, $memberId]); } header('Location: /Develop/PlanerGoogel/team.php?trip=' . $tripId); exit; } // Person entfernen if ($isAdmin && $_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['remove'])) { $memberId = (int)$_POST['remove']; if ($memberId !== $user['id']) { dbExec('DELETE FROM reise_zugriff WHERE trip_id = ? AND user_id = ?', [$tripId, $memberId]); } header('Location: /Develop/PlanerGoogel/team.php?trip=' . $tripId); exit; } // Reise-Einstellungen speichern if ($isAdmin && $_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['save_trip'])) { dbExec('UPDATE reisen SET name = ?, ziel = ?, start_datum = ?, end_datum = ?, cover_emoji = ?, beschreibung = ? WHERE id = ?', [ trim($_POST['name'] ?? $trip['name']), trim($_POST['ziel'] ?? ''), $_POST['start_datum'] ?? '', $_POST['end_datum'] ?? '', trim($_POST['cover_emoji'] ?? '✈️') ?: '✈️', trim($_POST['beschreibung'] ?? ''), $tripId, ]); header('Location: /Develop/PlanerGoogel/team.php?trip=' . $tripId); exit; } // Reise löschen if ($isAdmin && $_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['delete_trip'])) { dbExec('DELETE FROM reisen WHERE id = ?', [$tripId]); header('Location: /Develop/PlanerGoogel/'); exit; } $members = getTripMembers($tripId); $invites = dbAll('SELECT * FROM reise_einladungen WHERE trip_id = ? AND used_at IS NULL ORDER BY created_at DESC', [$tripId]); $baseUrl = (isset($_SERVER['HTTPS']) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST']; $pageTitle = 'Team & Einstellungen'; $activeTab = 'team'; include __DIR__ . '/includes/header.php'; ?>

Team & Einstellungen

Mitglieder

Person einladen

Offene Einladungen

✉️ /Develop/PlanerGoogel/login.php?invite=

Reise bearbeiten

Gefahrenzone