Browse code

added support for SRV records and warning at collission

Bernd Wurst authored on01/05/2020 08:07:42
Showing1 changed files
... ...
@@ -72,7 +72,7 @@ foreach ($records as $rec) {
72 72
             }
73 73
         }
74 74
     }
75
-    if ($rec['type'] == 'mx') {
75
+    if ($rec['type'] == 'mx' || $rec['type'] == 'srv') {
76 76
         $data .= ' ('.(int) $rec['spec'].')';
77 77
     }
78 78
     if ($rec['type'] == 'sshfp') {
... ...
@@ -83,7 +83,7 @@ foreach ($records as $rec) {
83 83
     }
84 84
     $ttl = ($rec['ttl'] ? $rec['ttl'] : 3600);
85 85
     $link = $rec['fqdn'];
86
-    if (!in_array($rec['type'], array('a', 'aaaa', 'mx', 'cname', 'ns', 'txt', 'spf', 'ptr', 'sshfp', 'caa'))) {
86
+    if (!in_array($rec['type'], array('a', 'aaaa', 'mx', 'cname', 'ns', 'txt', 'spf', 'ptr', 'sshfp', 'srv', 'caa'))) {
87 87
         $editable = false;
88 88
     }
89 89
     $delete = internal_link('dns_record_save', icon_delete('Record löschen'), "id={$rec['id']}&action=delete");
... ...
@@ -98,6 +98,9 @@ foreach ($records as $rec) {
98 98
 }
99 99
 foreach ($auto_records as $rec) {
100 100
     $data = filter_output_html($rec['ip'] ? $rec['ip'] : $rec['data']);
101
+    if ($rec['type'] == 'mx' || $rec['type'] == 'srv') {
102
+        $data .= ' ('.(int) $rec['spec'].')';
103
+    }
101 104
     $ttl = ($rec['ttl'] ? $rec['ttl'] : 3600);
102 105
     output("<tr><td><em>{$rec['fqdn']}</em></td><td>".strtoupper($rec['type'])."</td><td>$data</td><td>{$ttl} Sek.</td><td>&#160;</td></tr>\n");
103 106
 }
... ...
@@ -128,6 +131,7 @@ output('<h4>Neuen DNS-Record anlegen</h4>
128 131
 <li>'.internal_link('dns_record_edit', 'TXT', 'id=new&type=txt&domain='.$domain->id).'</li>
129 132
 <li>'.internal_link('dns_record_edit', 'SSHFP', 'id=new&type=sshfp&domain='.$domain->id).'</li>
130 133
 <li>'.internal_link('dns_record_edit', 'CAA', 'id=new&type=caa&domain='.$domain->id).'</li>
134
+<li>'.internal_link('dns_record_edit', 'SRV', 'id=new&type=srv&domain='.$domain->id).'</li>
131 135
 </ul>
132 136
 
133 137
 <h4>Automatische DNS-Records</h4>
Browse code

Umstellung von filter_input_general() auf filter_output_html()

Bernd Wurst authored on21/09/2019 17:07:48
Showing1 changed files
... ...
@@ -30,8 +30,8 @@ $domain->ensure_userdomain();
30 30
 
31 31
 DEBUG($domain);
32 32
 
33
-title('DNS-Records für '.filter_input_general($domain->fqdn));
34
-headline('DNS-Records für <em>'.filter_input_general($domain->fqdn).'</em>');
33
+title('DNS-Records für '.filter_output_html($domain->fqdn));
34
+headline('DNS-Records für <em>'.filter_output_html($domain->fqdn).'</em>');
35 35
 
36 36
 if ($domain->provider != 'terions' || $domain->billing != 'regular' || $domain->registrierungsdatum == null || $domain->kuendigungsdatum != null) {
37 37
     $state = check_dns($domain->domainname, $domain->tld);
... ...
@@ -58,7 +58,7 @@ output('<table><tr><th>Hostname</th><th>Typ</th><th>IP-Adresse/Inhalt</th><th>TT
58 58
 ');
59 59
 foreach ($records as $rec) {
60 60
     $editable = true;
61
-    $data = filter_input_general($rec['ip'] ? $rec['ip'] : $rec['data']);
61
+    $data = filter_output_html($rec['ip'] ? $rec['ip'] : $rec['data']);
62 62
     if ($rec['dyndns']) {
63 63
         if ($domain->fqdn == config('masterdomain')) {
64 64
             $data = '<em>DynDNS #'.(int) $rec['dyndns'].'</em>';
... ...
@@ -68,7 +68,7 @@ foreach ($records as $rec) {
68 68
             if ($dyndns === null) {
69 69
                 $data = '<em>DynDNS #'.(int) $rec['dyndns'].' (nicht Ihr Account)</em>';
70 70
             } else {
71
-                $data = internal_link('dyndns_edit', '<em>DynDNS #'.(int) $rec['dyndns'].' ('.filter_input_general($dyndns['handle']).')</em>', 'id='.(int) $rec['dyndns']);
71
+                $data = internal_link('dyndns_edit', '<em>DynDNS #'.(int) $rec['dyndns'].' ('.filter_output_html($dyndns['handle']).')</em>', 'id='.(int) $rec['dyndns']);
72 72
             }
73 73
         }
74 74
     }
... ...
@@ -97,7 +97,7 @@ foreach ($records as $rec) {
97 97
     output("<tr><td>{$link}</td><td>".strtoupper($rec['type'])."</td><td>".$data."</td><td>{$ttl} Sek.</td><td>".$delete."</td></tr>\n");
98 98
 }
99 99
 foreach ($auto_records as $rec) {
100
-    $data = filter_input_general($rec['ip'] ? $rec['ip'] : $rec['data']);
100
+    $data = filter_output_html($rec['ip'] ? $rec['ip'] : $rec['data']);
101 101
     $ttl = ($rec['ttl'] ? $rec['ttl'] : 3600);
102 102
     output("<tr><td><em>{$rec['fqdn']}</em></td><td>".strtoupper($rec['type'])."</td><td>$data</td><td>{$ttl} Sek.</td><td>&#160;</td></tr>\n");
103 103
 }
Browse code

Fix coding style with php-cs-checker, see https://cs.sensiolabs.org/

Hanno authored on26/06/2018 13:58:19
Showing1 changed files
... ...
@@ -8,7 +8,7 @@ Written 2008-2018 by schokokeks.org Hosting, namely
8 8
 
9 9
 To the extent possible under law, the author(s) have dedicated all copyright and related and neighboring rights to this software to the public domain worldwide. This software is distributed without any warranty.
10 10
 
11
-You should have received a copy of the CC0 Public Domain Dedication along with this software. If not, see 
11
+You should have received a copy of the CC0 Public Domain Dedication along with this software. If not, see
12 12
 http://creativecommons.org/publicdomain/zero/1.0/
13 13
 
14 14
 Nevertheless, in case you use a significant part of this code, we ask (but not require, see the license) that you keep the authors' names in place and return your changes to the public. We would be especially happy if you tell us what you're going to do with this code.
... ...
@@ -33,9 +33,9 @@ DEBUG($domain);
33 33
 title('DNS-Records für '.filter_input_general($domain->fqdn));
34 34
 headline('DNS-Records für <em>'.filter_input_general($domain->fqdn).'</em>');
35 35
 
36
-if ($domain->provider != 'terions' || $domain->billing != 'regular' || $domain->registrierungsdatum == NULL || $domain->kuendigungsdatum != NULL) {
36
+if ($domain->provider != 'terions' || $domain->billing != 'regular' || $domain->registrierungsdatum == null || $domain->kuendigungsdatum != null) {
37 37
     $state = check_dns($domain->domainname, $domain->tld);
38
-    if ($state !== True) {
38
+    if ($state !== true) {
39 39
         $current = 'Momentaner DNS-Server (u.A.): '.$state;
40 40
         if ($state == 'NXDOMAIN') {
41 41
             $current = 'Diese Domain ist aktuell nicht registriert.';
... ...
@@ -56,67 +56,60 @@ $cname_on_domain = false;
56 56
 
57 57
 output('<table><tr><th>Hostname</th><th>Typ</th><th>IP-Adresse/Inhalt</th><th>TTL</th><th>&#160;</th></tr>
58 58
 ');
59
-foreach ($records AS $rec)
60
-{
61
-  $editable = true;
62
-  $data = filter_input_general( $rec['ip'] ? $rec['ip'] : $rec['data'] );
63
-  if ($rec['dyndns'])
64
-  {
65
-    if ($domain->fqdn == config('masterdomain'))
66
-    { 
67
-      $data = '<em>DynDNS #'.(int) $rec['dyndns'].'</em>';
68
-      $editable = false;
69
-    } else {
70
-      $dyndns = get_dyndns_account($rec['dyndns']);
71
-      if ($dyndns === NULL) {
72
-        $data = '<em>DynDNS #'.(int) $rec['dyndns'].' (nicht Ihr Account)</em>';
73
-      } else {
74
-        $data = internal_link('dyndns_edit', '<em>DynDNS #'.(int) $rec['dyndns'].' ('.filter_input_general($dyndns['handle']).')</em>', 'id='.(int) $rec['dyndns']);
75
-      }
59
+foreach ($records as $rec) {
60
+    $editable = true;
61
+    $data = filter_input_general($rec['ip'] ? $rec['ip'] : $rec['data']);
62
+    if ($rec['dyndns']) {
63
+        if ($domain->fqdn == config('masterdomain')) {
64
+            $data = '<em>DynDNS #'.(int) $rec['dyndns'].'</em>';
65
+            $editable = false;
66
+        } else {
67
+            $dyndns = get_dyndns_account($rec['dyndns']);
68
+            if ($dyndns === null) {
69
+                $data = '<em>DynDNS #'.(int) $rec['dyndns'].' (nicht Ihr Account)</em>';
70
+            } else {
71
+                $data = internal_link('dyndns_edit', '<em>DynDNS #'.(int) $rec['dyndns'].' ('.filter_input_general($dyndns['handle']).')</em>', 'id='.(int) $rec['dyndns']);
72
+            }
73
+        }
74
+    }
75
+    if ($rec['type'] == 'mx') {
76
+        $data .= ' ('.(int) $rec['spec'].')';
77
+    }
78
+    if ($rec['type'] == 'sshfp') {
79
+        $data = (int) $rec['spec'] . ' 1 ' . $data;
80
+    }
81
+    if ($rec['type'] == 'caa') {
82
+        $data = $caa_properties[(int) $rec['spec']] . ' 0 "' . $data.'"';
83
+    }
84
+    $ttl = ($rec['ttl'] ? $rec['ttl'] : 3600);
85
+    $link = $rec['fqdn'];
86
+    if (!in_array($rec['type'], array('a', 'aaaa', 'mx', 'cname', 'ns', 'txt', 'spf', 'ptr', 'sshfp', 'caa'))) {
87
+        $editable = false;
76 88
     }
77
-  }
78
-  if ($rec['type'] == 'mx')
79
-  {
80
-    $data .= ' ('.(int) $rec['spec'].')';
81
-  }
82
-  if ($rec['type'] == 'sshfp')
83
-  {
84
-    $data = (int) $rec['spec'] . ' 1 ' . $data;
85
-  }
86
-  if ($rec['type'] == 'caa')
87
-  {
88
-    $data = $caa_properties[(int) $rec['spec']] . ' 0 "' . $data.'"';
89
-  }
90
-  $ttl = ($rec['ttl'] ? $rec['ttl'] : 3600);
91
-  $link = $rec['fqdn'];
92
-  if (!in_array($rec['type'], array('a', 'aaaa', 'mx', 'cname', 'ns', 'txt', 'spf', 'ptr', 'sshfp', 'caa'))) {
93
-      $editable = false;
94
-  }
95
-  $delete = internal_link('dns_record_save', icon_delete('Record löschen'), "id={$rec['id']}&action=delete");
96
-  if ($rec['type'] == 'ns' && ! $rec['hostname']) {
97
-      $editable = false;
98
-      $delete = '';
99
-  }
100
-  if ($editable) {
101
-      $link = internal_link('dns_record_edit', $rec['fqdn'], "id={$rec['id']}");
102
-  }
103
-  output("<tr><td>{$link}</td><td>".strtoupper($rec['type'])."</td><td>".$data."</td><td>{$ttl} Sek.</td><td>".$delete."</td></tr>\n");
104
-}  
105
-foreach ($auto_records AS $rec)
106
-{
107
-  $data = filter_input_general( $rec['ip'] ? $rec['ip'] : $rec['data'] );
108
-  $ttl = ($rec['ttl'] ? $rec['ttl'] : 3600);
109
-  output("<tr><td><em>{$rec['fqdn']}</em></td><td>".strtoupper($rec['type'])."</td><td>$data</td><td>{$ttl} Sek.</td><td>&#160;</td></tr>\n");
110
-  
89
+    $delete = internal_link('dns_record_save', icon_delete('Record löschen'), "id={$rec['id']}&action=delete");
90
+    if ($rec['type'] == 'ns' && ! $rec['hostname']) {
91
+        $editable = false;
92
+        $delete = '';
93
+    }
94
+    if ($editable) {
95
+        $link = internal_link('dns_record_edit', $rec['fqdn'], "id={$rec['id']}");
96
+    }
97
+    output("<tr><td>{$link}</td><td>".strtoupper($rec['type'])."</td><td>".$data."</td><td>{$ttl} Sek.</td><td>".$delete."</td></tr>\n");
98
+}
99
+foreach ($auto_records as $rec) {
100
+    $data = filter_input_general($rec['ip'] ? $rec['ip'] : $rec['data']);
101
+    $ttl = ($rec['ttl'] ? $rec['ttl'] : 3600);
102
+    output("<tr><td><em>{$rec['fqdn']}</em></td><td>".strtoupper($rec['type'])."</td><td>$data</td><td>{$ttl} Sek.</td><td>&#160;</td></tr>\n");
111 103
 }
112 104
 
113 105
 
114 106
 output('</table>');
115 107
 
116
-if ($domain->autodns)
117
-  output('<p style="font-size: 80%;"><em>Kursive Hostnames bezeichnen automatisch erzeugte Records. Diese können nicht geändert werden.</em></p>');
118
-else
119
-  output('<p style="font-size: 80%;"><em>Für diese Domain wurde die Erzeugung automatischer Records deaktiviert.</em></p>');
108
+if ($domain->autodns) {
109
+    output('<p style="font-size: 80%;"><em>Kursive Hostnames bezeichnen automatisch erzeugte Records. Diese können nicht geändert werden.</em></p>');
110
+} else {
111
+    output('<p style="font-size: 80%;"><em>Für diese Domain wurde die Erzeugung automatischer Records deaktiviert.</em></p>');
112
+}
120 113
 
121 114
 
122 115
 output('<h4>Neuen DNS-Record anlegen</h4>
... ...
@@ -140,18 +133,13 @@ output('<h4>Neuen DNS-Record anlegen</h4>
140 133
 <h4>Automatische DNS-Records</h4>
141 134
 ');
142 135
 
143
-if ($domain->autodns)
144
-{
145
-  output("<p>Für extrem ungewöhnliche Konfigurationen können Sie die Erzeugung von automatischen DNS-Records unter dieser Domain komplett abschalten. Dies ist i.d.R. falsch und wird zu Fehlfunktion führen. Nutzen Sie diese Einstellung auf eigene Gefahr.</p>
136
+if ($domain->autodns) {
137
+    output("<p>Für extrem ungewöhnliche Konfigurationen können Sie die Erzeugung von automatischen DNS-Records unter dieser Domain komplett abschalten. Dies ist i.d.R. falsch und wird zu Fehlfunktion führen. Nutzen Sie diese Einstellung auf eigene Gefahr.</p>
146 138
   <p>Möchten Sie einzelne DNS-Einträge abweichend setzen, so legen Sie einfach oben den jeweils gewünschten Record an. Falls es gleichlautende automatische Einträge gibt, werden diese anschließend unterdrückt.</p>
147 139
   <p>Warten Sie nach Änderung dieser Einstellung eine Minute und laden Sie danach die Seite neu.</p>
148 140
 <p>".internal_link('dns_save', 'Automatisch erzeugte Einträge umwandeln', "type=autodns&action=disable&dom={$domain->id}")."</p>");
149
-}
150
-else
151
-{
152
-  output("<p>Sie verwalten Ihre DNS-Einträge selbst. Wenn Sie möchten, können Sie die DNS-Einträge auch automatisch anhand der angelegten Webserver-VHosts und anderer Einstellungen festlegen lassen. Diese Eintäge können Sie dann nicht direkt ändern. Ihre bestehenden Einträge bleiben unberührt und zusätzlich erhalten. Bitte löschen Sie dadurch entstehende Duplikate!</p>
141
+} else {
142
+    output("<p>Sie verwalten Ihre DNS-Einträge selbst. Wenn Sie möchten, können Sie die DNS-Einträge auch automatisch anhand der angelegten Webserver-VHosts und anderer Einstellungen festlegen lassen. Diese Eintäge können Sie dann nicht direkt ändern. Ihre bestehenden Einträge bleiben unberührt und zusätzlich erhalten. Bitte löschen Sie dadurch entstehende Duplikate!</p>
153 143
   <p>Warten Sie nach Änderung dieser Einstellung eine Minute und laden Sie danach die Seite neu.</p>
154 144
 <p>".internal_link('dns_save', 'Automatisch erzeugte Einträge aktivieren', "type=autodns&action=enable&dom={$domain->id}")."</p>");
155 145
 }
156
-
157
-?>
Browse code

IPv6-support für DynDNS

Bernd Wurst authored on14/05/2018 07:37:12
Showing1 changed files
... ...
@@ -124,6 +124,7 @@ output('<h4>Neuen DNS-Record anlegen</h4>
124 124
 
125 125
 <ul>
126 126
 <li>'.internal_link('dns_record_edit', 'DynDNS (Hostname für einen DynDNS-Account setzen)', 'id=new&type=dyndns&domain='.$domain->id).'</li>
127
+<li>'.internal_link('dns_record_edit', 'DynDNS/AAAA (Hostname für einen DynDNS-Account setzen, als IPv6-Adresse)', 'id=new&type=dyndns_aaaa&domain='.$domain->id).'</li>
127 128
 <li>'.internal_link('dns_record_edit', 'A (normaler Hostname/normale Subdomain)', 'id=new&type=a&domain='.$domain->id).'</li>
128 129
 <li>'.internal_link('dns_record_edit', 'MX (Posteingangsserver)', 'id=new&type=mx&domain='.$domain->id).'</li>
129 130
 </ul>
Browse code

Zeige Warnung für falsche/externe DNS-Server auch auf der Domain-DNS-Seite

Bernd Wurst authored on12/03/2018 05:34:47
Showing1 changed files
... ...
@@ -33,6 +33,23 @@ DEBUG($domain);
33 33
 title('DNS-Records für '.filter_input_general($domain->fqdn));
34 34
 headline('DNS-Records für <em>'.filter_input_general($domain->fqdn).'</em>');
35 35
 
36
+if ($domain->provider != 'terions' || $domain->billing != 'regular' || $domain->registrierungsdatum == NULL || $domain->kuendigungsdatum != NULL) {
37
+    $state = check_dns($domain->domainname, $domain->tld);
38
+    if ($state !== True) {
39
+        $current = 'Momentaner DNS-Server (u.A.): '.$state;
40
+        if ($state == 'NXDOMAIN') {
41
+            $current = 'Diese Domain ist aktuell nicht registriert.';
42
+        }
43
+        if (substr_compare($state, config('masterdomain'), -strlen(config('masterdomain')), strlen(config('masterdomain'))) === 0) {
44
+            warning('Es werden veraltete DNS-Server benutzt: '.$current);
45
+            warning('Bitte aktualisieren Sie diese Domain bei Ihrem Registrar auf unsere aktuellen DNS-Server-Namen, die Sie auf der Übersichtsseite finden.');
46
+        } else {
47
+            warning('Lokaler DNS-Server eingeschaltet aber nicht genutzt. '.$current);
48
+        }
49
+    }
50
+}
51
+
52
+
36 53
 $records = get_domain_records($domain->id);
37 54
 $auto_records = get_domain_auto_records($domain->fqdn);
38 55
 $cname_on_domain = false;
Browse code

Mache manuelle NS-Records nicht mehr editier- und löschbar, Lösche sie aber automatisch wenn Autorecords eingeschaltet werden

Bernd Wurst authored on02/02/2018 06:29:18
Showing1 changed files
... ...
@@ -14,7 +14,7 @@ http://creativecommons.org/publicdomain/zero/1.0/
14 14
 Nevertheless, in case you use a significant part of this code, we ask (but not require, see the license) that you keep the authors' names in place and return your changes to the public. We would be especially happy if you tell us what you're going to do with this code.
15 15
 */
16 16
 
17
-require_once('inc/base.php');
17
+require_once('inc/icons.php');
18 18
 require_once('inc/security.php');
19 19
 
20 20
 require_once('class/domain.php');
... ...
@@ -35,6 +35,7 @@ headline('DNS-Records für <em>'.filter_input_general($domain->fqdn).'</em>');
35 35
 
36 36
 $records = get_domain_records($domain->id);
37 37
 $auto_records = get_domain_auto_records($domain->fqdn);
38
+$cname_on_domain = false;
38 39
 
39 40
 output('<table><tr><th>Hostname</th><th>Typ</th><th>IP-Adresse/Inhalt</th><th>TTL</th><th>&#160;</th></tr>
40 41
 ');
... ...
@@ -74,10 +75,15 @@ foreach ($records AS $rec)
74 75
   if (!in_array($rec['type'], array('a', 'aaaa', 'mx', 'cname', 'ns', 'txt', 'spf', 'ptr', 'sshfp', 'caa'))) {
75 76
       $editable = false;
76 77
   }
78
+  $delete = internal_link('dns_record_save', icon_delete('Record löschen'), "id={$rec['id']}&action=delete");
79
+  if ($rec['type'] == 'ns' && ! $rec['hostname']) {
80
+      $editable = false;
81
+      $delete = '';
82
+  }
77 83
   if ($editable) {
78 84
       $link = internal_link('dns_record_edit', $rec['fqdn'], "id={$rec['id']}");
79 85
   }
80
-  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");
86
+  output("<tr><td>{$link}</td><td>".strtoupper($rec['type'])."</td><td>".$data."</td><td>{$ttl} Sek.</td><td>".$delete."</td></tr>\n");
81 87
 }  
82 88
 foreach ($auto_records AS $rec)
83 89
 {
Browse code

Text für Autorecords geändert, NS-Records auf der Stammdomain verbieten

Bernd Wurst authored on02/02/2018 05:43:37
Showing1 changed files
... ...
@@ -107,7 +107,7 @@ output('<h4>Neuen DNS-Record anlegen</h4>
107 107
 <ul>
108 108
 <li>'.internal_link('dns_record_edit', 'AAAA (IPv6-Adresse)', 'id=new&type=aaaa&domain='.$domain->id).'</li>
109 109
 <li>'.internal_link('dns_record_edit', 'CNAME (Aliasnamen)', 'id=new&type=cname&domain='.$domain->id).'</li>
110
-<li>'.internal_link('dns_record_edit', 'NS (Nameserver)', 'id=new&type=ns&domain='.$domain->id).'</li>
110
+<li>'.internal_link('dns_record_edit', 'NS (Nameserver, NUR FÜR SUBDOMAINS!)', 'id=new&type=ns&domain='.$domain->id).'</li>
111 111
 <li>'.internal_link('dns_record_edit', 'TXT', 'id=new&type=txt&domain='.$domain->id).'</li>
112 112
 <li>'.internal_link('dns_record_edit', 'SSHFP', 'id=new&type=sshfp&domain='.$domain->id).'</li>
113 113
 <li>'.internal_link('dns_record_edit', 'CAA', 'id=new&type=caa&domain='.$domain->id).'</li>
... ...
@@ -118,12 +118,15 @@ output('<h4>Neuen DNS-Record anlegen</h4>
118 118
 
119 119
 if ($domain->autodns)
120 120
 {
121
-  output("<p>Automatische Einträge können nicht geändert werden. Möchten Sie davon abweichende Records setzen, so können Sie hiermit alle automatischen Einträge in normale Einträge konvertieren und die Erzeugung neuer automatischer Einträge abschalten. Diese Einstellung betrifft nur diese Domain und kann jederzeit geändert werden.</p>
121
+  output("<p>Für extrem ungewöhnliche Konfigurationen können Sie die Erzeugung von automatischen DNS-Records unter dieser Domain komplett abschalten. Dies ist i.d.R. falsch und wird zu Fehlfunktion führen. Nutzen Sie diese Einstellung auf eigene Gefahr.</p>
122
+  <p>Möchten Sie einzelne DNS-Einträge abweichend setzen, so legen Sie einfach oben den jeweils gewünschten Record an. Falls es gleichlautende automatische Einträge gibt, werden diese anschließend unterdrückt.</p>
123
+  <p>Warten Sie nach Änderung dieser Einstellung eine Minute und laden Sie danach die Seite neu.</p>
122 124
 <p>".internal_link('dns_save', 'Automatisch erzeugte Einträge umwandeln', "type=autodns&action=disable&dom={$domain->id}")."</p>");
123 125
 }
124 126
 else
125 127
 {
126
-  output("<p>Sie verwealten Ihre DNS-Einträge selbst. Wenn Sie möchten, können Sie die DNS-Einträge auch automatisch anhand der angelegten Webserver-VHosts und anderer Einstellungen festlegen lassen. Diese Eintäge können Sie dann nicht direkt ändern. Ihre bestehenden Einträge bleiben unberührt und zusätzlich erhalten. Bitte löschen Sie dadurch entstehende Duplikate!</p>
128
+  output("<p>Sie verwalten Ihre DNS-Einträge selbst. Wenn Sie möchten, können Sie die DNS-Einträge auch automatisch anhand der angelegten Webserver-VHosts und anderer Einstellungen festlegen lassen. Diese Eintäge können Sie dann nicht direkt ändern. Ihre bestehenden Einträge bleiben unberührt und zusätzlich erhalten. Bitte löschen Sie dadurch entstehende Duplikate!</p>
129
+  <p>Warten Sie nach Änderung dieser Einstellung eine Minute und laden Sie danach die Seite neu.</p>
127 130
 <p>".internal_link('dns_save', 'Automatisch erzeugte Einträge aktivieren', "type=autodns&action=enable&dom={$domain->id}")."</p>");
128 131
 }
129 132
 
Browse code

Copyright year update

Bernd Wurst authored on13/01/2018 06:07:05
Showing1 changed files
... ...
@@ -2,7 +2,7 @@
2 2
 /*
3 3
 This file belongs to the Webinterface of schokokeks.org Hosting
4 4
 
5
-Written 2008-2014 by schokokeks.org Hosting, namely
5
+Written 2008-2018 by schokokeks.org Hosting, namely
6 6
   Bernd Wurst <bernd@schokokeks.org>
7 7
   Hanno Böck <hanno@schokokeks.org>
8 8
 
Browse code

add caa support

Hanno Böck authored on08/03/2017 23:39:30
Showing1 changed files
... ...
@@ -65,9 +65,13 @@ foreach ($records AS $rec)
65 65
   {
66 66
     $data = (int) $rec['spec'] . ' 1 ' . $data;
67 67
   }
68
+  if ($rec['type'] == 'caa')
69
+  {
70
+    $data = $caa_properties[(int) $rec['spec']] . ' 0 "' . $data.'"';
71
+  }
68 72
   $ttl = ($rec['ttl'] ? $rec['ttl'] : 3600);
69 73
   $link = $rec['fqdn'];
70
-  if (!in_array($rec['type'], array('a', 'aaaa', 'mx', 'cname', 'ns', 'txt', 'spf', 'ptr', 'sshfp'))) {
74
+  if (!in_array($rec['type'], array('a', 'aaaa', 'mx', 'cname', 'ns', 'txt', 'spf', 'ptr', 'sshfp', 'caa'))) {
71 75
       $editable = false;
72 76
   }
73 77
   if ($editable) {
... ...
@@ -106,6 +110,7 @@ output('<h4>Neuen DNS-Record anlegen</h4>
106 110
 <li>'.internal_link('dns_record_edit', 'NS (Nameserver)', 'id=new&type=ns&domain='.$domain->id).'</li>
107 111
 <li>'.internal_link('dns_record_edit', 'TXT', 'id=new&type=txt&domain='.$domain->id).'</li>
108 112
 <li>'.internal_link('dns_record_edit', 'SSHFP', 'id=new&type=sshfp&domain='.$domain->id).'</li>
113
+<li>'.internal_link('dns_record_edit', 'CAA', 'id=new&type=caa&domain='.$domain->id).'</li>
109 114
 </ul>
110 115
 
111 116
 <h4>Automatische DNS-Records</h4>
Browse code

Zeige DNS-Records eine Domain auch dann an, wenn ein DynDNS eines anderen Users enthalten ist (z.B. für schokokeks.net)

Bernd Wurst authored on19/02/2016 04:57:23
Showing1 changed files
... ...
@@ -50,7 +50,11 @@ foreach ($records AS $rec)
50 50
       $editable = false;
51 51
     } else {
52 52
       $dyndns = get_dyndns_account($rec['dyndns']);
53
-      $data = internal_link('dyndns_edit', '<em>DynDNS #'.(int) $rec['dyndns'].' ('.filter_input_general($dyndns['handle']).')</em>', 'id='.(int) $rec['dyndns']);
53
+      if ($dyndns === NULL) {
54
+        $data = '<em>DynDNS #'.(int) $rec['dyndns'].' (nicht Ihr Account)</em>';
55
+      } else {
56
+        $data = internal_link('dyndns_edit', '<em>DynDNS #'.(int) $rec['dyndns'].' ('.filter_input_general($dyndns['handle']).')</em>', 'id='.(int) $rec['dyndns']);
57
+      }
54 58
     }
55 59
   }
56 60
   if ($rec['type'] == 'mx')
Browse code

SPF-Records hinzufügen ist deprecated => entfernt

Bernd Wurst authored on02/04/2015 13:47:05
Showing1 changed files
... ...
@@ -100,7 +100,6 @@ output('<h4>Neuen DNS-Record anlegen</h4>
100 100
 <li>'.internal_link('dns_record_edit', 'AAAA (IPv6-Adresse)', 'id=new&type=aaaa&domain='.$domain->id).'</li>
101 101
 <li>'.internal_link('dns_record_edit', 'CNAME (Aliasnamen)', 'id=new&type=cname&domain='.$domain->id).'</li>
102 102
 <li>'.internal_link('dns_record_edit', 'NS (Nameserver)', 'id=new&type=ns&domain='.$domain->id).'</li>
103
-<li>'.internal_link('dns_record_edit', 'SPF (sender policy framework)', 'id=new&type=spf&domain='.$domain->id).'</li>
104 103
 <li>'.internal_link('dns_record_edit', 'TXT', 'id=new&type=txt&domain='.$domain->id).'</li>
105 104
 <li>'.internal_link('dns_record_edit', 'SSHFP', 'id=new&type=sshfp&domain='.$domain->id).'</li>
106 105
 </ul>
Browse code

zu viel Input-Filterung entfernt

Bernd Wurst authored on15/11/2014 15:11:35
Showing1 changed files
... ...
@@ -41,25 +41,25 @@ output('<table><tr><th>Hostname</th><th>Typ</th><th>IP-Adresse/Inhalt</th><th>TT
41 41
 foreach ($records AS $rec)
42 42
 {
43 43
   $editable = true;
44
-  $data = ( $rec['ip'] ? $rec['ip'] : $rec['data'] );
44
+  $data = filter_input_general( $rec['ip'] ? $rec['ip'] : $rec['data'] );
45 45
   if ($rec['dyndns'])
46 46
   {
47 47
     if ($domain->fqdn == config('masterdomain'))
48 48
     { 
49
-      $data = '<em>DynDNS #'.$rec['dyndns'].'</em>';
49
+      $data = '<em>DynDNS #'.(int) $rec['dyndns'].'</em>';
50 50
       $editable = false;
51 51
     } else {
52 52
       $dyndns = get_dyndns_account($rec['dyndns']);
53
-      $data = internal_link('dyndns_edit', '<em>DynDNS #'.$rec['dyndns'].' ('.$dyndns['handle'].')</em>', 'id='.$rec['dyndns']);
53
+      $data = internal_link('dyndns_edit', '<em>DynDNS #'.(int) $rec['dyndns'].' ('.filter_input_general($dyndns['handle']).')</em>', 'id='.(int) $rec['dyndns']);
54 54
     }
55 55
   }
56 56
   if ($rec['type'] == 'mx')
57 57
   {
58
-    $data .= ' ('.$rec['spec'].')';
58
+    $data .= ' ('.(int) $rec['spec'].')';
59 59
   }
60 60
   if ($rec['type'] == 'sshfp')
61 61
   {
62
-    $data = $rec['spec'] . ' 1 ' . $data;
62
+    $data = (int) $rec['spec'] . ' 1 ' . $data;
63 63
   }
64 64
   $ttl = ($rec['ttl'] ? $rec['ttl'] : 3600);
65 65
   $link = $rec['fqdn'];
... ...
@@ -69,11 +69,11 @@ foreach ($records AS $rec)
69 69
   if ($editable) {
70 70
       $link = internal_link('dns_record_edit', $rec['fqdn'], "id={$rec['id']}");
71 71
   }
72
-  output("<tr><td>{$link}</td><td>".strtoupper($rec['type'])."</td><td>".filter_input_general($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");
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");
73 73
 }  
74 74
 foreach ($auto_records AS $rec)
75 75
 {
76
-  $data = ( $rec['ip'] ? $rec['ip'] : $rec['data'] );
76
+  $data = filter_input_general( $rec['ip'] ? $rec['ip'] : $rec['data'] );
77 77
   $ttl = ($rec['ttl'] ? $rec['ttl'] : 3600);
78 78
   output("<tr><td><em>{$rec['fqdn']}</em></td><td>".strtoupper($rec['type'])."</td><td>$data</td><td>{$ttl} Sek.</td><td>&#160;</td></tr>\n");
79 79
   
Browse code

fix 2 xss via txt record

Hanno Böck authored on19/09/2014 10:50:31
Showing1 changed files
... ...
@@ -69,7 +69,7 @@ foreach ($records AS $rec)
69 69
   if ($editable) {
70 70
       $link = internal_link('dns_record_edit', $rec['fqdn'], "id={$rec['id']}");
71 71
   }
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");
72
+  output("<tr><td>{$link}</td><td>".strtoupper($rec['type'])."</td><td>".filter_input_general($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");
73 73
 }  
74 74
 foreach ($auto_records AS $rec)
75 75
 {
Browse code

Erzeuge DNS-Records der Form "handle.username.masterdomain" bei jedem neuen DynDNS-Account

Bernd Wurst authored on04/07/2014 11:42:35
Showing1 changed files
... ...
@@ -40,11 +40,18 @@ 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
   {
46
-    $dyndns = get_dyndns_account($rec['dyndns']);
47
-    $data = internal_link('dyndns_edit', '<em>DynDNS #'.$rec['dyndns'].' ('.$dyndns['handle'].')</em>', 'id='.$rec['dyndns']);
47
+    if ($domain->fqdn == config('masterdomain'))
48
+    { 
49
+      $data = '<em>DynDNS #'.$rec['dyndns'].'</em>';
50
+      $editable = false;
51
+    } else {
52
+      $dyndns = get_dyndns_account($rec['dyndns']);
53
+      $data = internal_link('dyndns_edit', '<em>DynDNS #'.$rec['dyndns'].' ('.$dyndns['handle'].')</em>', 'id='.$rec['dyndns']);
54
+    }
48 55
   }
49 56
   if ($rec['type'] == 'mx')
50 57
   {
... ...
@@ -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");
Browse code

Lizenzinfos in eigenes Modul ausgelagert und Copyright auf 2014 angepasst

Bernd Wurst authored on08/02/2014 05:45:07
Showing1 changed files
... ...
@@ -2,7 +2,7 @@
2 2
 /*
3 3
 This file belongs to the Webinterface of schokokeks.org Hosting
4 4
 
5
-Written 2008-2013 by schokokeks.org Hosting, namely
5
+Written 2008-2014 by schokokeks.org Hosting, namely
6 6
   Bernd Wurst <bernd@schokokeks.org>
7 7
   Hanno Böck <hanno@schokokeks.org>
8 8
 
Browse code

Updated copyright notice (2012 => 2013)

Bernd Wurst authored on19/01/2013 10:49:50
Showing1 changed files
... ...
@@ -2,7 +2,7 @@
2 2
 /*
3 3
 This file belongs to the Webinterface of schokokeks.org Hosting
4 4
 
5
-Written 2008-2012 by schokokeks.org Hosting, namely
5
+Written 2008-2013 by schokokeks.org Hosting, namely
6 6
   Bernd Wurst <bernd@schokokeks.org>
7 7
   Hanno Böck <hanno@schokokeks.org>
8 8
 
Browse code

Added license tags for CC0, README and COPYING

Bernd Wurst authored on11/03/2012 15:40:04
Showing1 changed files
... ...
@@ -1,4 +1,18 @@
1 1
 <?php
2
+/*
3
+This file belongs to the Webinterface of schokokeks.org Hosting
4
+
5
+Written 2008-2012 by schokokeks.org Hosting, namely
6
+  Bernd Wurst <bernd@schokokeks.org>
7
+  Hanno Böck <hanno@schokokeks.org>
8
+
9
+To the extent possible under law, the author(s) have dedicated all copyright and related and neighboring rights to this software to the public domain worldwide. This software is distributed without any warranty.
10
+
11
+You should have received a copy of the CC0 Public Domain Dedication along with this software. If not, see 
12
+http://creativecommons.org/publicdomain/zero/1.0/
13
+
14
+Nevertheless, in case you use a significant part of this code, we ask (but not require, see the license) that you keep the authors' names in place and return your changes to the public. We would be especially happy if you tell us what you're going to do with this code.
15
+*/
2 16
 
3 17
 require_once('inc/base.php');
4 18
 require_once('inc/security.php');
Browse code

SSHFP-Records (Thanks to Martin Gollowitzer)

git-svn-id: https://svn.schokokeks.org/repos/tools/webinterface/trunk@2014 87cf0b9e-d624-0410-a070-f6ee81989793

bernd authored on21/06/2011 15:08:34
Showing1 changed files
... ...
@@ -36,9 +36,13 @@ foreach ($records AS $rec)
36 36
   {
37 37
     $data .= ' ('.$rec['spec'].')';
38 38
   }
39
+  if ($rec['type'] == 'sshfp')
40
+  {
41
+    $data = $rec['spec'] . ' 1 ' . $data;
42
+  }
39 43
   $ttl = ($rec['ttl'] ? $rec['ttl'] : 3600);
40 44
   $link = $rec['fqdn'];
41
-  if (in_array($rec['type'], array('a', 'aaaa', 'mx', 'cname', 'ns', 'txt', 'spf', 'ptr'))) {
45
+  if (in_array($rec['type'], array('a', 'aaaa', 'mx', 'cname', 'ns', 'txt', 'spf', 'ptr', 'sshfp'))) {
42 46
       $link = internal_link('dns_record_edit', $rec['fqdn'], "id={$rec['id']}");
43 47
   }
44 48
   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");
... ...
@@ -74,6 +78,7 @@ output('<h4>Neuen DNS-Record anlegen</h4>
74 78
 <li>'.internal_link('dns_record_edit', 'NS (Nameserver)', 'id=new&type=ns&domain='.$domain->id).'</li>
75 79
 <li>'.internal_link('dns_record_edit', 'SPF (sender policy framework)', 'id=new&type=spf&domain='.$domain->id).'</li>
76 80
 <li>'.internal_link('dns_record_edit', 'TXT', 'id=new&type=txt&domain='.$domain->id).'</li>
81
+<li>'.internal_link('dns_record_edit', 'SSHFP', 'id=new&type=sshfp&domain='.$domain->id).'</li>
77 82
 </ul>
78 83
 
79 84
 <h4>Automatische DNS-Records</h4>
Browse code

Benutze überall title() statt output("<h3>...</h3>")

git-svn-id: https://svn.schokokeks.org/repos/tools/webinterface/trunk@1812 87cf0b9e-d624-0410-a070-f6ee81989793

bernd authored on18/09/2010 13:35:15
Showing1 changed files
... ...
@@ -16,7 +16,8 @@ $domain->ensure_userdomain();
16 16
 
17 17
 DEBUG($domain);
18 18
 
19
-output('<h3>DNS-Records für <em>'.filter_input_general($domain->fqdn).'</em></h3>');
19
+title('DNS-Records für '.filter_input_general($domain->fqdn));
20
+headline('DNS-Records für <em>'.filter_input_general($domain->fqdn).'</em>');
20 21
 
21 22
 $records = get_domain_records($domain->id);
22 23
 $auto_records = get_domain_auto_records($domain->fqdn);
Browse code

Erlaube *useraccounts* das edtieren von DNS-records

git-svn-id: https://svn.schokokeks.org/repos/tools/webinterface/trunk@1731 87cf0b9e-d624-0410-a070-f6ee81989793

bernd authored on06/05/2010 14:49:17
Showing1 changed files
... ...
@@ -5,14 +5,14 @@ require_once('inc/security.php');
5 5
 
6 6
 require_once('class/domain.php');
7 7
 
8
-require_role(ROLE_CUSTOMER);
8
+require_role(ROLE_SYSTEMUSER);
9 9
 
10 10
 require_once('dnsinclude.php');
11 11
 
12 12
 $section = 'dns_dns';
13 13
 
14 14
 $domain = new Domain((int) $_REQUEST['dom']);
15
-$domain->ensure_customerdomain();
15
+$domain->ensure_userdomain();
16 16
 
17 17
 DEBUG($domain);
18 18
 
Browse code

PTR editierbar

git-svn-id: https://svn.schokokeks.org/repos/tools/webinterface/trunk@1694 87cf0b9e-d624-0410-a070-f6ee81989793

bernd authored on14/03/2010 10:23:05
Showing1 changed files
... ...
@@ -37,7 +37,7 @@ foreach ($records AS $rec)
37 37
   }
38 38
   $ttl = ($rec['ttl'] ? $rec['ttl'] : 3600);
39 39
   $link = $rec['fqdn'];
40
-  if (in_array($rec['type'], array('a', 'aaaa', 'mx', 'cname', 'ns', 'txt', 'spf'))) {
40
+  if (in_array($rec['type'], array('a', 'aaaa', 'mx', 'cname', 'ns', 'txt', 'spf', 'ptr'))) {
41 41
       $link = internal_link('dns_record_edit', $rec['fqdn'], "id={$rec['id']}");
42 42
   }
43 43
   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");
Browse code

Autodns ein- und ausschaltbar, Konversion von autorecords

git-svn-id: https://svn.schokokeks.org/repos/tools/webinterface/trunk@1463 87cf0b9e-d624-0410-a070-f6ee81989793

bernd authored on07/09/2009 07:11:50
Showing1 changed files
... ...
@@ -37,7 +37,7 @@ foreach ($records AS $rec)
37 37
   }
38 38
   $ttl = ($rec['ttl'] ? $rec['ttl'] : 3600);
39 39
   $link = $rec['fqdn'];
40
-  if (in_array($rec['type'], array('a', 'aaaa', 'mx', 'cname'))) {
40
+  if (in_array($rec['type'], array('a', 'aaaa', 'mx', 'cname', 'ns', 'txt', 'spf'))) {
41 41
       $link = internal_link('dns_record_edit', $rec['fqdn'], "id={$rec['id']}");
42 42
   }
43 43
   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");
... ...
@@ -70,9 +70,23 @@ output('<h4>Neuen DNS-Record anlegen</h4>
70 70
 <ul>
71 71
 <li>'.internal_link('dns_record_edit', 'AAAA (IPv6-Adresse)', 'id=new&type=aaaa&domain='.$domain->id).'</li>
72 72
 <li>'.internal_link('dns_record_edit', 'CNAME (Aliasnamen)', 'id=new&type=cname&domain='.$domain->id).'</li>
73
-<li>'.internal_link('dns_record_edit', 'SPF', 'id=new&type=spf&domain='.$domain->id).'</li>
73
+<li>'.internal_link('dns_record_edit', 'NS (Nameserver)', 'id=new&type=ns&domain='.$domain->id).'</li>
74
+<li>'.internal_link('dns_record_edit', 'SPF (sender policy framework)', 'id=new&type=spf&domain='.$domain->id).'</li>
74 75
 <li>'.internal_link('dns_record_edit', 'TXT', 'id=new&type=txt&domain='.$domain->id).'</li>
75 76
 </ul>
77
+
78
+<h4>Automatische DNS-Records</h4>
76 79
 ');
77 80
 
81
+if ($domain->autodns)
82
+{
83
+  output("<p>Automatische Einträge können nicht geändert werden. Möchten Sie davon abweichende Records setzen, so können Sie hiermit alle automatischen Einträge in normale Einträge konvertieren und die Erzeugung neuer automatischer Einträge abschalten. Diese Einstellung betrifft nur diese Domain und kann jederzeit geändert werden.</p>
84
+<p>".internal_link('dns_save', 'Automatisch erzeugte Einträge umwandeln', "type=autodns&action=disable&dom={$domain->id}")."</p>");
85
+}
86
+else
87
+{
88
+  output("<p>Sie verwealten Ihre DNS-Einträge selbst. Wenn Sie möchten, können Sie die DNS-Einträge auch automatisch anhand der angelegten Webserver-VHosts und anderer Einstellungen festlegen lassen. Diese Eintäge können Sie dann nicht direkt ändern. Ihre bestehenden Einträge bleiben unberührt und zusätzlich erhalten. Bitte löschen Sie dadurch entstehende Duplikate!</p>
89
+<p>".internal_link('dns_save', 'Automatisch erzeugte Einträge aktivieren', "type=autodns&action=enable&dom={$domain->id}")."</p>");
90
+}
91
+
78 92
 ?>
Browse code

SPF und TXT records

git-svn-id: https://svn.schokokeks.org/repos/tools/webinterface/trunk@1462 87cf0b9e-d624-0410-a070-f6ee81989793

bernd authored on07/09/2009 06:05:53
Showing1 changed files
... ...
@@ -70,6 +70,8 @@ output('<h4>Neuen DNS-Record anlegen</h4>
70 70
 <ul>
71 71
 <li>'.internal_link('dns_record_edit', 'AAAA (IPv6-Adresse)', 'id=new&type=aaaa&domain='.$domain->id).'</li>
72 72
 <li>'.internal_link('dns_record_edit', 'CNAME (Aliasnamen)', 'id=new&type=cname&domain='.$domain->id).'</li>
73
+<li>'.internal_link('dns_record_edit', 'SPF', 'id=new&type=spf&domain='.$domain->id).'</li>
74
+<li>'.internal_link('dns_record_edit', 'TXT', 'id=new&type=txt&domain='.$domain->id).'</li>
73 75
 </ul>
74 76
 ');
75 77
 
Browse code

Nur edit-links für bekannte und editierbare record-typen anzeigen

git-svn-id: https://svn.schokokeks.org/repos/tools/webinterface/trunk@1399 87cf0b9e-d624-0410-a070-f6ee81989793

bernd authored on19/06/2009 10:14:10
Showing1 changed files
... ...
@@ -36,7 +36,11 @@ foreach ($records AS $rec)
36 36
     $data .= ' ('.$rec['spec'].')';
37 37
   }
38 38
   $ttl = ($rec['ttl'] ? $rec['ttl'] : 3600);
39
-  output("<tr><td>".internal_link('dns_record_edit', $rec['fqdn'], "id={$rec['id']}")."</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");
39
+  $link = $rec['fqdn'];
40
+  if (in_array($rec['type'], array('a', 'aaaa', 'mx', 'cname'))) {
41
+      $link = internal_link('dns_record_edit', $rec['fqdn'], "id={$rec['id']}");
42
+  }
43
+  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");
40 44
 }  
41 45
 foreach ($auto_records AS $rec)
42 46
 {
Browse code

Prüfe, ob Domain wirklich die eigene ist.

git-svn-id: https://svn.schokokeks.org/repos/tools/webinterface/trunk@1385 87cf0b9e-d624-0410-a070-f6ee81989793

bernd authored on02/06/2009 11:30:05
Showing1 changed files
... ...
@@ -12,6 +12,7 @@ require_once('dnsinclude.php');
12 12
 $section = 'dns_dns';
13 13
 
14 14
 $domain = new Domain((int) $_REQUEST['dom']);
15
+$domain->ensure_customerdomain();
15 16
 
16 17
 DEBUG($domain);
17 18
 
Browse code

Einige Dummheiten repariert, die beim ersetzen von $config durch config() aufgetreten sind. Zudem einige Closing-Tag-mismatches repariert, die man nur sieht wenn man XHTML-Modus einschaltet

git-svn-id: https://svn.schokokeks.org/repos/tools/webinterface/trunk@1377 87cf0b9e-d624-0410-a070-f6ee81989793

bernd authored on23/05/2009 15:55:23
Showing1 changed files
... ...
@@ -41,7 +41,7 @@ foreach ($auto_records AS $rec)
41 41
 {
42 42
   $data = ( $rec['ip'] ? $rec['ip'] : $rec['data'] );
43 43
   $ttl = ($rec['ttl'] ? $rec['ttl'] : 3600);
44
-  output("<tr><td><em>{$rec['fqdn']}</td><td>".strtoupper($rec['type'])."</td><td>$data</td><td>{$ttl} Sek.</td><td>&#160;</td></tr>\n");
44
+  output("<tr><td><em>{$rec['fqdn']}</em></td><td>".strtoupper($rec['type'])."</td><td>$data</td><td>{$ttl} Sek.</td><td>&#160;</td></tr>\n");
45 45
   
46 46
 }
47 47
 

git-svn-id: https://svn.schokokeks.org/repos/tools/webinterface/trunk@1354 87cf0b9e-d624-0410-a070-f6ee81989793

bernd authored on30/04/2009 14:58:39
Showing1 changed files
... ...
@@ -58,7 +58,7 @@ output('<h4>Neuen DNS-Record anlegen</h4>
58 58
 <p>Je nach dem, welchen Eintrags-Typ Sie anlegen möchten, werden im nächsten Schritt unterschiedliche Daten abgefragt. Bitte klicken Sie auf den Eintrags-Typ, den Sie anlegen möchten. Momentan werden noch nicht alle Eintrags-Typen über dieses System bereitgestellt. Hier nicht aufgeführte Eintragsarten können Sie beim Support beantragen.</p>
59 59
 
60 60
 <ul>
61
-<li>'.internal_link('dns_record_edit', 'DynDNS (Hostname für einen DynDNS-Account setzen))', 'id=new&type=dyndns&domain='.$domain->id).'</li>
61
+<li>'.internal_link('dns_record_edit', 'DynDNS (Hostname für einen DynDNS-Account setzen)', 'id=new&type=dyndns&domain='.$domain->id).'</li>
62 62
 <li>'.internal_link('dns_record_edit', 'A (normaler Hostname/normale Subdomain)', 'id=new&type=a&domain='.$domain->id).'</li>
63 63
 <li>'.internal_link('dns_record_edit', 'MX (Posteingangsserver)', 'id=new&type=mx&domain='.$domain->id).'</li>
64 64
 </ul>
Browse code

DNs-record-Interface ist jetzt read/write

git-svn-id: https://svn.schokokeks.org/repos/tools/webinterface/trunk@1353 87cf0b9e-d624-0410-a070-f6ee81989793

bernd authored on30/04/2009 14:19:40
Showing1 changed files
... ...
@@ -15,43 +15,57 @@ $domain = new Domain((int) $_REQUEST['dom']);
15 15
 
16 16
 DEBUG($domain);
17 17
 
18
-$output .= '<h3>DNS-Records für <em>'.filter_input_general($domain->fqdn).'</em></h3>';
18
+output('<h3>DNS-Records für <em>'.filter_input_general($domain->fqdn).'</em></h3>');
19 19
 
20 20
 $records = get_domain_records($domain->id);
21 21
 $auto_records = get_domain_auto_records($domain->fqdn);
22 22
 
23
-$output .= '<table><tr><th>Hostname</th><th>Typ</th><th>IP-Adresse/Inhalt</th><th>TTL</th><th>&#160;</th></tr>
24
-';
23
+output('<table><tr><th>Hostname</th><th>Typ</th><th>IP-Adresse/Inhalt</th><th>TTL</th><th>&#160;</th></tr>
24
+');
25 25
 foreach ($records AS $rec)
26 26
 {
27 27
   $data = ( $rec['ip'] ? $rec['ip'] : $rec['data'] );
28 28
   if ($rec['dyndns'])
29
-    $data = internal_link('dyndns_edit', '<em>DynDNS #'.$rec['dyndns'].'</em>', 'id='.$rec['dyndns']);
29
+  {
30
+    $dyndns = get_dyndns_account($rec['dyndns']);
31
+    $data = internal_link('dyndns_edit', '<em>DynDNS #'.$rec['dyndns'].' ('.$dyndns['handle'].')</em>', 'id='.$rec['dyndns']);
32
+  }
33
+  if ($rec['type'] == 'mx')
34
+  {
35
+    $data .= ' ('.$rec['spec'].')';
36
+  }
30 37
   $ttl = ($rec['ttl'] ? $rec['ttl'] : 3600);
31
-  $output .= "<tr><td>".internal_link('dns_record_edit', $rec['fqdn'], "id={$rec['id']}")."</td><td>".strtoupper($rec['type'])."</td><td>$data</td><td>{$ttl} Sek.</td><td>".internal_link('save', '<img src="'.$prefix.'images/delete.png" width="16" height="16" alt="löschen" title="Record löschen" />', "id={$rec['id']}&type=dns&action=delete")."</td></tr>\n";
38
+  output("<tr><td>".internal_link('dns_record_edit', $rec['fqdn'], "id={$rec['id']}")."</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");
32 39
 }  
33 40
 foreach ($auto_records AS $rec)
34 41
 {
35 42
   $data = ( $rec['ip'] ? $rec['ip'] : $rec['data'] );
36 43
   $ttl = ($rec['ttl'] ? $rec['ttl'] : 3600);
37
-  $output .= "<tr><td><em>{$rec['fqdn']}</td><td>".strtoupper($rec['type'])."</td><td>$data</td><td>{$ttl} Sek.</td><td>&#160;</td></tr>\n";
44
+  output("<tr><td><em>{$rec['fqdn']}</td><td>".strtoupper($rec['type'])."</td><td>$data</td><td>{$ttl} Sek.</td><td>&#160;</td></tr>\n");
38 45
   
39 46
 }
40 47
 
41 48
 
42
-$output .= '</table>';
49
+output('</table>');
43 50
 
44 51
 if ($domain->autodns)
45
-  $output .= '<p style="font-size: 80%;"><em>Kursive Hostnames bezeichnen automatisch erzeugte Records. Diese können nicht geändert werden.</em></p>';
52
+  output('<p style="font-size: 80%;"><em>Kursive Hostnames bezeichnen automatisch erzeugte Records. Diese können nicht geändert werden.</em></p>');
46 53
 else
47
-  $output .= '<p style="font-size: 80%;"><em>Für diese Domain wurde die Erzeugung automatischer Records deaktiviert.</em></p>';
48
-
49
-
50
-$output .= html_form('dns_record_new', 'dns_record_edit', 'id=new&dom='.$domain->id, 
51
-'<h4>Neuen DNS-Record anlegen</h4>
52
-<p>
53
-<label for="type">Typ:</label>&#160;'.html_select('type', array('a' => 'A', 'aaaa' => 'AAAA', 'mx' => 'MX', 'ns' => 'NS', 'spf' => 'SPF', 'txt' => 'TXT', 'cname' => 'CNAME', 'ptr' => 'PTR', 'srv' => 'SRV', 'raw' => 'RAW'), 'a').'
54
-&#160;&#160;&#160;<input type="submit" value="Anlegen" />
55
-</p>');
54
+  output('<p style="font-size: 80%;"><em>Für diese Domain wurde die Erzeugung automatischer Records deaktiviert.</em></p>');
55
+
56
+
57
+output('<h4>Neuen DNS-Record anlegen</h4>
58
+<p>Je nach dem, welchen Eintrags-Typ Sie anlegen möchten, werden im nächsten Schritt unterschiedliche Daten abgefragt. Bitte klicken Sie auf den Eintrags-Typ, den Sie anlegen möchten. Momentan werden noch nicht alle Eintrags-Typen über dieses System bereitgestellt. Hier nicht aufgeführte Eintragsarten können Sie beim Support beantragen.</p>
59
+
60
+<ul>
61
+<li>'.internal_link('dns_record_edit', 'DynDNS (Hostname für einen DynDNS-Account setzen))', 'id=new&type=dyndns&domain='.$domain->id).'</li>
62
+<li>'.internal_link('dns_record_edit', 'A (normaler Hostname/normale Subdomain)', 'id=new&type=a&domain='.$domain->id).'</li>
63
+<li>'.internal_link('dns_record_edit', 'MX (Posteingangsserver)', 'id=new&type=mx&domain='.$domain->id).'</li>
64
+</ul>
65
+<ul>
66
+<li>'.internal_link('dns_record_edit', 'AAAA (IPv6-Adresse)', 'id=new&type=aaaa&domain='.$domain->id).'</li>
67
+<li>'.internal_link('dns_record_edit', 'CNAME (Aliasnamen)', 'id=new&type=cname&domain='.$domain->id).'</li>
68
+</ul>
69
+');
56 70
 
57 71
 ?>
Browse code

git-svn-id: https://svn.schokokeks.org/repos/tools/webinterface/trunk@1136 87cf0b9e-d624-0410-a070-f6ee81989793

bernd authored on13/08/2008 10:06:00
Showing1 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,57 @@
1
+<?php
2
+
3
+require_once('inc/base.php');
4
+require_once('inc/security.php');
5
+
6
+require_once('class/domain.php');
7
+
8
+require_role(ROLE_CUSTOMER);
9
+
10
+require_once('dnsinclude.php');
11
+
12
+$section = 'dns_dns';
13
+
14
+$domain = new Domain((int) $_REQUEST['dom']);
15
+
16
+DEBUG($domain);
17
+
18
+$output .= '<h3>DNS-Records für <em>'.filter_input_general($domain->fqdn).'</em></h3>';
19
+
20
+$records = get_domain_records($domain->id);
21
+$auto_records = get_domain_auto_records($domain->fqdn);
22
+
23
+$output .= '<table><tr><th>Hostname</th><th>Typ</th><th>IP-Adresse/Inhalt</th><th>TTL</th><th>&#160;</th></tr>
24
+';
25
+foreach ($records AS $rec)
26
+{
27
+  $data = ( $rec['ip'] ? $rec['ip'] : $rec['data'] );
28
+  if ($rec['dyndns'])
29
+    $data = internal_link('dyndns_edit', '<em>DynDNS #'.$rec['dyndns'].'</em>', 'id='.$rec['dyndns']);
30
+  $ttl = ($rec['ttl'] ? $rec['ttl'] : 3600);
31
+  $output .= "<tr><td>".internal_link('dns_record_edit', $rec['fqdn'], "id={$rec['id']}")."</td><td>".strtoupper($rec['type'])."</td><td>$data</td><td>{$ttl} Sek.</td><td>".internal_link('save', '<img src="'.$prefix.'images/delete.png" width="16" height="16" alt="löschen" title="Record löschen" />', "id={$rec['id']}&type=dns&action=delete")."</td></tr>\n";
32
+}  
33
+foreach ($auto_records AS $rec)
34
+{
35
+  $data = ( $rec['ip'] ? $rec['ip'] : $rec['data'] );
36
+  $ttl = ($rec['ttl'] ? $rec['ttl'] : 3600);
37
+  $output .= "<tr><td><em>{$rec['fqdn']}</td><td>".strtoupper($rec['type'])."</td><td>$data</td><td>{$ttl} Sek.</td><td>&#160;</td></tr>\n";
38
+  
39
+}
40
+
41
+
42
+$output .= '</table>';
43
+
44
+if ($domain->autodns)
45
+  $output .= '<p style="font-size: 80%;"><em>Kursive Hostnames bezeichnen automatisch erzeugte Records. Diese können nicht geändert werden.</em></p>';
46
+else
47
+  $output .= '<p style="font-size: 80%;"><em>Für diese Domain wurde die Erzeugung automatischer Records deaktiviert.</em></p>';
48
+
49
+
50
+$output .= html_form('dns_record_new', 'dns_record_edit', 'id=new&dom='.$domain->id, 
51
+'<h4>Neuen DNS-Record anlegen</h4>
52
+<p>
53
+<label for="type">Typ:</label>&#160;'.html_select('type', array('a' => 'A', 'aaaa' => 'AAAA', 'mx' => 'MX', 'ns' => 'NS', 'spf' => 'SPF', 'txt' => 'TXT', 'cname' => 'CNAME', 'ptr' => 'PTR', 'srv' => 'SRV', 'raw' => 'RAW'), 'a').'
54
+&#160;&#160;&#160;<input type="submit" value="Anlegen" />
55
+</p>');
56
+
57
+?>