Bernd Wurst commited on 2014-07-04 11:42:35
Zeige 2 geänderte Dateien mit 18 Einfügungen und 1 Löschungen.
| ... | ... |
@@ -40,12 +40,19 @@ output('<table><tr><th>Hostname</th><th>Typ</th><th>IP-Adresse/Inhalt</th><th>TT
|
| 40 | 40 |
'); |
| 41 | 41 |
foreach ($records AS $rec) |
| 42 | 42 |
{
|
| 43 |
+ $editable = true; |
|
| 43 | 44 |
$data = ( $rec['ip'] ? $rec['ip'] : $rec['data'] ); |
| 44 | 45 |
if ($rec['dyndns']) |
| 45 | 46 |
{
|
| 47 |
+ if ($domain->fqdn == config('masterdomain'))
|
|
| 48 |
+ {
|
|
| 49 |
+ $data = '<em>DynDNS #'.$rec['dyndns'].'</em>'; |
|
| 50 |
+ $editable = false; |
|
| 51 |
+ } else {
|
|
| 46 | 52 |
$dyndns = get_dyndns_account($rec['dyndns']); |
| 47 | 53 |
$data = internal_link('dyndns_edit', '<em>DynDNS #'.$rec['dyndns'].' ('.$dyndns['handle'].')</em>', 'id='.$rec['dyndns']);
|
| 48 | 54 |
} |
| 55 |
+ } |
|
| 49 | 56 |
if ($rec['type'] == 'mx') |
| 50 | 57 |
{
|
| 51 | 58 |
$data .= ' ('.$rec['spec'].')';
|
| ... | ... |
@@ -56,7 +63,10 @@ foreach ($records AS $rec) |
| 56 | 63 |
} |
| 57 | 64 |
$ttl = ($rec['ttl'] ? $rec['ttl'] : 3600); |
| 58 | 65 |
$link = $rec['fqdn']; |
| 59 |
- if (in_array($rec['type'], array('a', 'aaaa', 'mx', 'cname', 'ns', 'txt', 'spf', 'ptr', 'sshfp'))) {
|
|
| 66 |
+ if (!in_array($rec['type'], array('a', 'aaaa', 'mx', 'cname', 'ns', 'txt', 'spf', 'ptr', 'sshfp'))) {
|
|
| 67 |
+ $editable = false; |
|
| 68 |
+ } |
|
| 69 |
+ if ($editable) {
|
|
| 60 | 70 |
$link = internal_link('dns_record_edit', $rec['fqdn'], "id={$rec['id']}");
|
| 61 | 71 |
} |
| 62 | 72 |
output("<tr><td>{$link}</td><td>".strtoupper($rec['type'])."</td><td>$data</td><td>{$ttl} Sek.</td><td>".internal_link('dns_record_save', '<img src="'.$prefix.'images/delete.png" width="16" height="16" alt="löschen" title="Record löschen" />', "id={$rec['id']}&action=delete")."</td></tr>\n");
|
| ... | ... |
@@ -67,6 +67,11 @@ function create_dyndns_account($handle, $password_http, $sshkey) |
| 67 | 67 |
db_query("INSERT INTO dns.dyndns (uid, handle, password, sshkey) VALUES ".
|
| 68 | 68 |
"(:uid, :handle, :pwhash, :sshkey)", |
| 69 | 69 |
array(":uid" => $uid, ":handle" => $handle, ":pwhash" => $pwhash, ":sshkey" => $sshkey));
|
| 70 |
+ $dyndns_id = db_insert_id(); |
|
| 71 |
+ $masterdomain = new Domain(config('masterdomain'));
|
|
| 72 |
+ db_query("INSERT INTO dns.custom_records (type, domain, hostname, dyndns, ttl) VALUES ".
|
|
| 73 |
+ "('a', :dom, :hostname, :dyndns, 120)",
|
|
| 74 |
+ array(":dom" => $masterdomain->id, ":hostname" => filter_input_hostname($handle).'.'.$_SESSION['userinfo']['username'], ":dyndns" => $dyndns_id));
|
|
| 70 | 75 |
logger(LOG_INFO, "modules/dns/include/dnsinclude", "dyndns", "inserted account"); |
| 71 | 76 |
} |
| 72 | 77 |
|
| ... | ... |
@@ -108,7 +113,9 @@ function get_dyndns_records($id) |
| 108 | 113 |
$data = array(); |
| 109 | 114 |
while ($entry = $result->fetch()) {
|
| 110 | 115 |
$dom = new Domain((int) $entry['domain']); |
| 116 |
+ if ($dom->fqdn != config('masterdomain')) {
|
|
| 111 | 117 |
$dom->ensure_userdomain(); |
| 118 |
+ } |
|
| 112 | 119 |
$entry['fqdn'] = $entry['hostname'].'.'.$dom->fqdn; |
| 113 | 120 |
if (! $entry['hostname']) |
| 114 | 121 |
$entry['fqdn'] = $dom->fqdn; |
| 115 | 122 |