needlogin = true; $me = new User(); $me->loadMe(); $this->me = $me; $this->layout()->set("me", $me); if (!$me->is(["Admin"])) { $this->redirect("Dashboard"); } } protected function indexAction() { $this->layout()->setTemplate("Device/Index"); $devices = DeviceModel::getAll(); $this->layout()->set("devices", $devices); } protected function detailAction() { $id = $this->request->id; if (!is_numeric($id) || !$id) { $this->layout()->setFlash("Gerät nicht gefunden", "error"); $this->redirect("Device"); } $device = new Device($id); if ($device->id != $id) { $this->layout()->setFlash("Gerät nicht gefunden", "error"); $this->redirect("Device"); } $this->layout()->setTemplate("Device/Detail"); $devices = DeviceModel::getOne($id); $this->layout()->set("devices", $devices); } protected function addAction() { $this->layout()->setTemplate("Device/Form"); $this->layout()->set("devicetypes", DevicetypeModel::getAll()); $this->layout()->set("pops", PopModel::getAll()); } protected function editAction() { $id = $this->request->id; if (!is_numeric($id) || !$id) { $this->layout()->setFlash("Gerät nicht gefunden", "error"); $this->redirect("Device"); } $device = new Device($id); if ($device->id != $id) { $this->layout()->setFlash("Gerät nicht gefunden", "error"); $this->redirect("Device"); } $this->layout()->set("device", $device); return $this->addAction(); } protected function saveAction() { $r = $this->request; $id = $r->id; //var_dump($r->get());exit; if (is_numeric($id) && $id > 0) { $mode = "edit"; $device = new Device($id); if (!$device->id) { $this->layout()->setFlash("Device nicht gefunden", "error"); $this->redirect("Device"); } } else { $mode = "add"; } $data = []; $data['name'] = trim($r->name); $data['devicetype_id'] = $r->devicetype_id; if (empty(trim($r->pop_id))) { $data['pop_id'] = NULL; } else { $data['pop_id'] = $r->pop_id; } $data['ip'] = $r->ip; $data['mac'] = $r->mac; $data['serial'] = $r->serial; $data['comment'] = $r->comment; $ipv4_validation_regex = "/^(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/"; if (!$data['name']) { $this->layout()->setFlash("Name darf nicht leer sein", "error"); $this->redirect("Device"); } if (!$data['ip']) { $this->layout()->setFlash("IP-Adresse darf nicht leer sein", "error"); $this->redirect("Device"); } else if (!preg_match($ipv4_validation_regex, trim($data['ip']))) { $this->layout()->setFlash("IP-Adresse ist nicht gültig", "error"); $this->redirect("Device"); } // var_dump($_FILES); // var_dump($upload); // exit; if ($mode == "edit") { $device->update($data); } else { $device = DeviceModel::create($data); } // var_dump($device); // exit; $id = $device->save(); if (!$id) { $this->layout()->setFlash("Device konnte nicht angelegt werden", "error"); $this->redirect("Device"); } if ($mode == "edit") { $this->layout()->setFlash("Device erfolgreich geändert", "success"); } else if ($mode = "add") { $this->layout()->setFlash("Device erfolgreich angelegt", "success"); } $this->redirect("Device"); } }