public function __construct($dns_zone_id = false, $user_id = false, $offset = false, $limit = false, $sort_by = false, $order = false) { $result = array(); if ($offset !== false) { $this->setOffset((int) $offset); } if ($limit !== false) { $this->setLimit((int) $limit); } if ($sort_by !== false) { $this->setSortBy($sort_by); } if ($order !== false) { $this->SetOrder($order); } // initialize $total_count with the total number of objects in the list (over all pages) try { $stmt = DB::getInstance()->prepare("SELECT COUNT(*) as total_count\n\t\t\t\t\t\t\t\t\t\t\t\t\tFROM dns_ressource_records\n\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(dns_zone_id = :dns_zone_id OR :dns_zone_id=0) AND\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(user_id = :user_id OR :user_id=0)"); $stmt->bindParam(':dns_zone_id', $dns_zone_id, PDO::PARAM_INT); $stmt->bindParam(':user_id', $user_id, PDO::PARAM_INT); $stmt->execute(); $total_count = $stmt->fetch(PDO::FETCH_ASSOC); } catch (PDOException $e) { echo $e->getMessage(); echo $e->getTraceAsString(); } $this->setTotalCount((int) $total_count['total_count']); //if limit -1 then get all ressource records if ($this->getLimit() == -1) { $this->setLimit($this->getTotalCount()); } try { $stmt = DB::getInstance()->prepare("SELECT id as dns_ressource_record_id\n\t\t\t\t\t\t\t\t\t\t\t\t\tFROM dns_ressource_records\n\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(dns_zone_id = :dns_zone_id OR :dns_zone_id=0) AND\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(user_id = :user_id OR :user_id=0)\n\t\t\t\t\t\t\t\t\t\t\t\t\tORDER BY\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcase :sort_by\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twhen 'dns_ressource_record_id' then dns_ressource_records.id\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twhen 'dns_zone_id' then dns_ressource_records.dns_zone_id\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twhen 'user_id' then dns_ressource_records.user_id\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\telse NULL\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tend\n\t\t\t\t\t\t\t\t\t\t\t\t\t" . $this->getOrder() . "\n\t\t\t\t\t\t\t\t\t\t\t\t\tLIMIT :offset, :limit"); $stmt->bindParam(':dns_zone_id', $dns_zone_id, PDO::PARAM_INT); $stmt->bindParam(':user_id', $user_id, PDO::PARAM_INT); $stmt->bindParam(':offset', $this->getOffset(), PDO::PARAM_INT); $stmt->bindParam(':limit', $this->getLimit(), PDO::PARAM_INT); $stmt->bindParam(':sort_by', $this->getSortBy(), PDO::PARAM_STR); $stmt->execute(); $result = $stmt->fetchAll(PDO::FETCH_ASSOC); } catch (PDOException $e) { echo $e->getMessage(); echo $e->getTraceAsString(); } foreach ($result as $dns_ressource_record) { $dns_ressource_record = new DnsRessourceRecord((int) $dns_ressource_record['dns_ressource_record_id']); $dns_ressource_record->fetch(); $this->dns_ressource_record_list[] = $dns_ressource_record; } }
public function setDnsRessourceRecordList($itemlist = false) { if ($itemlist instanceof DnsRessourceRecordList) { $this->dns_ressource_record_list = $itemlist; return true; } elseif (is_array($itemlist)) { $dns_ressource_record_list = new DnsRessourceRecordList(false, false, 0, 0); foreach ($itemlist as $dns_ressource_record_id) { $dns_ressource_record = new DnsRessourceRecord((int) $dns_ressource_record_id); if ($dns_ressource_record->fetch()) { $dns_ressource_record_list->add($dns_ressource_record); } } $this->setDnsRessourceRecordList($dns_ressource_record_list); return true; } elseif ($itemlist == false and $this->getServiceId() != 0) { $result = array(); try { $stmt = DB::getInstance()->prepare("SELECT dns_ressource_record_id\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tFROM service_dns_ressource_records\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE service_id = ?"); $stmt->execute(array($this->getServiceId())); $result = $stmt->fetchAll(PDO::FETCH_ASSOC); } catch (PDOException $e) { echo $e->getMessage(); echo $e->getTraceAsString(); } $dns_ressource_record_list = new DnsRessourceRecordList(false, false, 0, 0); foreach ($result as $dns_ressource_record_id) { $dns_ressource_record = new DnsRessourceRecord((int) $dns_ressource_record_id['dns_ressource_record_id']); if ($dns_ressource_record->fetch()) { $dns_ressource_record_list->add($dns_ressource_record); } } $this->setDnsRessourceRecordList($dns_ressource_record_list); return true; } return false; }
} else { Permission::denyAccess(PERM_USER); } } elseif ($_GET['section'] == 'insert_add') { if (Permission::checkPermission(PERM_USER)) { $dns_ressource_record = new DnsRessourceRecord(false, (int) $_POST['dns_zone_id'], (int) $_SESSION['user_id'], $_POST['host'], $_POST['type'], $_POST['pri'], (int) $_POST['destination']); if ($dns_ressource_record->store()) { $message[] = array('Der Ressource Record ' . $dns_ressource_record->getHost() . ' wurde gespeichert.', 1); } else { $message[] = array('Der Ressource Record konnte nicht gespeichert werden.', 2); } Message::setMessage($message); header('Location: ./dns_zone.php?dns_zone_id=' . $_POST['dns_zone_id']); } else { Permission::denyAccess(PERM_USER); } } elseif ($_GET['section'] == 'delete') { $dns_ressource_record = new DnsRessourceRecord((int) $_GET['dns_ressource_record_id']); $dns_ressource_record->fetch(); if (permission::checkIfUserIsOwnerOrPermitted(PERM_ROOT, $dns_ressource_record->getUserId())) { if ($dns_ressource_record->delete()) { $message[] = array('Der Ressource Record ' . $dns_ressource_record->getHost() . ' wurde gelöscht.', 1); } else { $message[] = array('Der Ressource Record ' . $dns_ressource_record->getHost() . ' konnte nicht gelöscht werden.', 2); } Message::setMessage($message); header('Location: ./dns_zone.php?dns_zone_id=' . $dns_ressource_record->getDnsZoneId()); } else { Permission::denyAccess(PERM_ROOT, $dns_ressource_record->getUserId()); } }
private function dns_ressource_record() { if ($this->get_request_method() == "GET" && isset($this->_request['id'])) { $dns_ressource_record = new DnsRessourceRecord((int) $this->_request['id']); if ($dns_ressource_record->fetch()) { $domxmldata = $dns_ressource_record->getDomXMLElement($this->domxml); $this->response($this->finishxml($domxmldata), 200); } else { $this->error_code = 1; $this->error_message = "DNS Ressource Record not found"; $this->response($this->finishxml(), 404); } } }