From 404dd219e2be522e8bf9d7295c3ecdac3259f9d0 Mon Sep 17 00:00:00 2001 From: Daniel Spitzer Date: Sun, 5 Oct 2025 21:33:39 +0200 Subject: [PATCH] Kalenderupdate * Komplette Verwaltung von Kalender Rechte von internen und externen Mitarbeiteren --- application/Calendar/CalendarController.php | 54 ++++++++++++++++----- 1 file changed, 41 insertions(+), 13 deletions(-) diff --git a/application/Calendar/CalendarController.php b/application/Calendar/CalendarController.php index c7a398e07..85ed25a6a 100644 --- a/application/Calendar/CalendarController.php +++ b/application/Calendar/CalendarController.php @@ -700,8 +700,8 @@ class CalendarController extends mfBaseController protected function addAction() { -// $users = UserModel::getAll(); -// $this->layout()->set("users", $users); + $users = UserModel::getAll(); + $this->layout()->set("users", $users); $this->layout()->setTemplate("Calendar/Form"); } @@ -742,19 +742,45 @@ class CalendarController extends mfBaseController $data = []; if ($mode == "add") { - $data['calendar_firstname'] = trim($r->calendar_firstname); - $data['calendar_lastname'] = trim($r->calendar_lastname); + $userType = trim($r->user_type); + if ($userType === 'system') { + $userId = intval($r->user_id); + if (!$userId) { + $this->layout()->setFlash("Bitte wählen Sie einen Benutzer aus", "error"); + $this->redirect("Calendar", "add"); + } - if (!$data['calendar_firstname'] || !$data['calendar_lastname']) { - $this->layout()->setFlash("Vor- und Nachname dürfen nicht leer sein", "error"); - $this->redirect("Calendar"); - } - $data['calendar_name'] = $data['calendar_firstname'] . ' ' . $data['calendar_lastname']; - if (trim($r->calendar_email)) { - $data['calendar_email'] = trim($r->calendar_email); + $user = new User($userId); + if (!$user->id) { + $this->layout()->setFlash("Benutzer nicht gefunden", "error"); + $this->redirect("Calendar", "add"); + } + + $data['user_id'] = $userId; + $data['calendar_name'] = $user->name; + if (trim($r->calendar_email)) { + $data['calendar_email'] = trim($r->calendar_email); + } else { + $data['calendar_email'] = $user->email; + } } else { - $data['calendar_email'] = strtolower($data['calendar_firstname']) . '.' . - strtolower($data['calendar_lastname']) . '@xinon.extern'; + + $data['calendar_firstname'] = trim($r->calendar_firstname); + $data['calendar_lastname'] = trim($r->calendar_lastname); + + if (!$data['calendar_firstname'] || !$data['calendar_lastname']) { + $this->layout()->setFlash("Vor- und Nachname dürfen nicht leer sein", "error"); + $this->redirect("Calendar", "add"); + } + + $data['calendar_name'] = $data['calendar_firstname'] . ' ' . $data['calendar_lastname']; + + if (trim($r->calendar_email)) { + $data['calendar_email'] = trim($r->calendar_email); + } else { + $data['calendar_email'] = strtolower($data['calendar_firstname']) . '.' . + strtolower($data['calendar_lastname']) . '@xinon.extern'; + } } } elseif ($mode == "edit" && !$calendars->user_id) { $data['calendar_firstname'] = trim($r->calendar_firstname); @@ -980,6 +1006,7 @@ class CalendarController extends mfBaseController } $this->redirect("Calendar"); } + private function createGroupOfficeUser($calendar) { $dbcal = CalendarModel::dbKalender(); @@ -1063,6 +1090,7 @@ class CalendarController extends mfBaseController error_log("Failed to create GroupOffice Calendar for User ID: $goUserId"); return false; } + protected function deleteAction() { $id = $this->request->id;